rust/src/librustc_codegen_llvm
bors bce32b532d Auto merge of #51987 - nikomatsakis:nll-region-infer-scc, r=pnkfelix
nll experiment: compute SCCs instead of iterative region solving

This is an attempt to speed up region solving by replacing the current iterative dataflow with a SCC computation. The idea is to detect cycles (SCCs) amongst region constraints and then compute just one value per cycle. The graph with all cycles removed is of course a DAG, so we can then solve constraints "bottom up" once the liveness values are known.

I kinda ran out of time this morning so the last commit is a bit sloppy but I wanted to get this posted, let travis run on it, and maybe do a perf run, before I clean it up.
2018-07-13 13:28:55 +00:00
..
back Rollup merge of #52252 - ljedrz:dyn_librustc_codegen_llvm, r=varkor 2018-07-11 12:38:44 -06:00
debuginfo Emit column info in debuginfo for non msvc like targets 2018-07-02 12:16:05 +02:00
mir Auto merge of #51987 - nikomatsakis:nll-region-infer-scc, r=pnkfelix 2018-07-13 13:28:55 +00:00
abi.rs Auto merge of #52089 - eddyb:issue-51907, r=nagisa 2018-07-12 01:20:19 +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 Deny bare trait objects in in src/librustc_codegen_llvm 2018-07-11 12:49:11 +02: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 Deny bare trait objects in in src/librustc_codegen_llvm 2018-07-11 12:49:11 +02:00
lib.rs Deny bare trait objects in in src/librustc_codegen_llvm 2018-07-11 12:49:11 +02: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.