rust/src/librustc_codegen_llvm
bors 11432ba980 Auto merge of #51230 - nikic:no-verify-lto, r=pnkfelix
Disable LLVM verification by default

Currently -Z no-verify only controls IR verification prior to LLVM codegen, while verification is performed unconditionally both before and after linking with (Thin)LTO.

Also wondering what the sentiment is on disabling verification by default (and e.g. only enabling it on ALT builds with assertions). This does not seem terribly useful outside of rustc development and it does seem to show up in profiles (at something like 3%).

**EDIT:** A table showing the various configurations and what is enabled when.

| Configuration | Dynamic verification performed | LLVM static assertions compiled in |
| --- | --- | --- |
| alt builds | | yes |
| nightly builds | | no |
| stable builds | | no |
| CI builds | | |
| dev builds in a checkout | | |
2018-07-11 12:12:13 +00:00
..
back Auto merge of #51230 - nikic:no-verify-lto, r=pnkfelix 2018-07-11 12:12:13 +00:00
debuginfo Emit column info in debuginfo for non msvc like targets 2018-07-02 12:16:05 +02:00
mir Auto merge of #51583 - cuviper:packed_pair-bool, r=Mark-Simulacrum 2018-07-10 03:08:47 +00:00
abi.rs Auto merge of #51583 - cuviper:packed_pair-bool, r=Mark-Simulacrum 2018-07-10 03:08:47 +00:00
allocator.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
asm.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
attributes.rs Upgrade to LLVM's master branch (LLVM 7) 2018-07-10 13:43:01 -07:00
base.rs Auto merge of #51966 - alexcrichton:llvm7, r=michaelwoerister 2018-07-11 07:20:14 +00:00
build.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
builder.rs Correct some codegen stats counters 2018-07-09 09:40:16 +02:00
callee.rs std: Ensure OOM is classified as nounwind 2018-05-24 12:03:05 -07:00
Cargo.toml Replace tempdir by tempfile in librustc_trans 2018-06-20 19:28:27 +02:00
common.rs Update Cargo.lock and move size_and_align_of_dst back 2018-07-07 10:52:29 +02:00
consts.rs Do not allow LLVM to increase a TLS's alignment on macOS. 2018-06-30 21:36:03 +08:00
context.rs add simd float intrinsics and gather/scatter 2018-05-24 16:04:39 +02:00
declare.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
diagnostics.rs Add backticks to E0558 2018-06-24 00:16:10 +01:00
glue.rs Update Cargo.lock and move size_and_align_of_dst back 2018-07-07 10:52:29 +02:00
intrinsic.rs Update Cargo.lock and move size_and_align_of_dst back 2018-07-07 10:52:29 +02:00
lib.rs Upgrade to LLVM's master branch (LLVM 7) 2018-07-10 13:43:01 -07:00
llvm_util.rs Move llvm_target_features back to llvm_util 2018-07-07 10:55:47 +02:00
metadata.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
meth.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
mono_item.rs Upgrade to LLVM's master branch (LLVM 7) 2018-07-10 13:43:01 -07:00
README.md Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
type_.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
type_of.rs Auto merge of #51583 - cuviper:packed_pair-bool, r=Mark-Simulacrum 2018-07-10 03:08:47 +00:00
value.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00

The codegen crate contains the code to convert from MIR into LLVM IR, and then from LLVM IR into machine code. In general it contains code that runs towards the end of the compilation process.

For more information about how codegen works, see the rustc guide.