rust/src/librustc_codegen_llvm
Mark Simulacrum e7ae1b2648
Rollup merge of #51323 - nikic:switch-int-lowering, r=nagisa
Generate br for all two target SwitchInts

Instead of only for booleans. This means that `if let` also becomes a br.

Apart from making the IR slightly simpler, this is supported by FastISel (#4353).
2018-06-03 18:18:05 -06:00
..
back musl: don't use the included startfiles with -crt-static 2018-05-31 12:01:50 +02:00
debuginfo rustc: turn mir::LocalDecl's visibility_source_info into a SourceScope. 2018-05-30 20:30:10 +03:00
mir Generate br for all two target SwitchInts 2018-06-02 22:21:01 +02:00
abi.rs Add constant for Size::from_bytes(0) 2018-05-24 20:46:07 +02: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 std: Ensure OOM is classified as nounwind 2018-05-24 12:03:05 -07:00
base.rs Don't ICE if crate has no valid crate types left 2018-05-24 17:05:16 +02:00
build.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
builder.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
callee.rs std: Ensure OOM is classified as nounwind 2018-05-24 12:03:05 -07:00
Cargo.toml Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
common.rs stop invoking DebruijnIndex::new directly 2018-05-28 19:47:04 -04:00
consts.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03: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 Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
glue.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
intrinsic.rs refactor 2018-05-24 16:04:39 +02:00
lib.rs Stabilise inclusive_range_methods 2018-05-17 20:58:28 +01:00
llvm_util.rs Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03: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 Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
README.md Rename trans to codegen everywhere. 2018-05-17 15:08:30 +03:00
time_graph.rs 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 Replace ScalarKind with Primitive 2018-05-24 20:49:37 +02: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.