rust/src/librustc_trans
bors 13a86f4d85 Auto merge of #48346 - emilio:pgo, r=alexcrichton
Add basic PGO support.

This PR adds two mutually exclusive options for profile usage and generation using LLVM's instruction profile generation (the same as clang uses), `-C pgo-use` and `-C pgo-gen`.

See each commit for details.
2018-03-26 13:00:18 +00:00
..
back Auto merge of #48346 - emilio:pgo, r=alexcrichton 2018-03-26 13:00:18 +00:00
debuginfo remove defaulting to unit 2018-03-14 12:44:51 +08:00
mir Added UserAssertTy statement. 2018-03-22 21:10:59 +00:00
abi.rs Rollup merge of #49122 - scottmcm:z-align-attr, r=cramertj 2018-03-25 01:26:30 +08:00
allocator.rs rustc: Add an option to default hidden visibility 2018-01-30 13:41:20 -08:00
asm.rs rustc_trans: clobber $1 (aka $at) on mips 2018-01-30 11:54:52 +00:00
attributes.rs librustc: Convert -C pgo-gen and -C pgo-use into -Z flags. 2018-03-25 03:30:06 +02:00
base.rs try to fix the build on older LLVM versions. 2018-03-25 03:30:06 +02:00
build.rs
builder.rs Introduce unsafe offset_from on pointers 2018-03-23 01:30:23 -07:00
cabi_aarch64.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
cabi_arm.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
cabi_asmjs.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
cabi_hexagon.rs rustc: move size, align & primitive_align from Abi::Aggregate to layout. 2017-11-19 02:14:32 +02:00
cabi_mips64.rs rustc_trans: fix small aggregate returns for big-endian mips64 FFI 2018-03-14 20:18:30 +01:00
cabi_mips.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
cabi_msp430.rs rustc: move size, align & primitive_align from Abi::Aggregate to layout. 2017-11-19 02:14:32 +02:00
cabi_nvptx64.rs rustc: move size, align & primitive_align from Abi::Aggregate to layout. 2017-11-19 02:14:32 +02:00
cabi_nvptx.rs rustc: move size, align & primitive_align from Abi::Aggregate to layout. 2017-11-19 02:14:32 +02:00
cabi_powerpc64.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
cabi_powerpc.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
cabi_s390x.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
cabi_sparc64.rs Removed uneeded argument to make_indirect. 2018-01-18 11:03:49 -08:00
cabi_sparc.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
cabi_wasm32.rs rustc: Start a custom cabi module for wasm32 2018-03-12 13:09:03 -07:00
cabi_x86_64.rs rustc_trans: add chunked prefix fields to CastTarget 2018-02-14 14:38:55 +00:00
cabi_x86_win64.rs rustc: unpack newtyped of #[repr(simd)] vector types. 2017-12-13 01:57:56 +02:00
cabi_x86.rs Add specific target option for returning struct as an integer. 2018-02-26 10:21:52 -08:00
callee.rs refactor ParamEnv::empty(Reveal) into two distinct methods 2018-03-13 11:21:30 -04:00
Cargo.toml Update env_logger to 0.5.4 2018-03-06 12:37:28 -08:00
common.rs Rollup merge of #48983 - gnzlbg:red, r=alexcrichton 2018-03-17 17:20:43 +08:00
consts.rs Fully use miri in trans 2018-03-08 08:34:05 +01:00
context.rs refactor ParamEnv::empty(Reveal) into two distinct methods 2018-03-13 11:21:30 -04:00
declare.rs transition various normalization functions to the new methods 2018-03-13 11:22:07 -04:00
diagnostics.rs Allow runtime switching between trans backends 2018-01-19 20:27:10 +01:00
glue.rs rustc_trans: rename bcx to bx. 2018-01-14 08:56:44 +02:00
intrinsic.rs Auto merge of #49297 - scottmcm:offset-from, r=dtolnay 2018-03-26 00:15:34 +00:00
lib.rs Stabilize conservative_impl_trait 2018-03-26 10:43:03 +02:00
llvm_util.rs librustc_trans: Gate the preinliner with another -Z flag. 2018-03-25 03:30:06 +02:00
metadata.rs Make metadata references Send + Sync 2018-03-07 01:56:59 +01:00
meth.rs rustc_trans: rename bcx to bx. 2018-01-14 08:56:44 +02:00
README.md Replace many of the last references to readmes 2018-03-16 12:43:22 -05:00
time_graph.rs
trans_item.rs Fully use miri in trans 2018-03-08 08:34:05 +01:00
type_.rs rustc_trans: rename ccx to cx. 2018-01-14 08:56:44 +02:00
type_of.rs transition various normalization functions to the new methods 2018-03-13 11:22:07 -04:00
value.rs

The trans 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 trans works, see the rustc guide.