rust/src/librustc_trans/trans
Alex Crichton 87ede2da54 rustc: Improve compile time of platform intrinsics
This commit improves the compile time of `rustc_platform_intrinsics` from 23s to
3.6s if compiling with `-O` and from 77s to 17s if compiling with `-O -g`. The
compiled rlib size also drops from 3.1M to 1.2M.

The wins here were gained by removing the destructors associated with `Type` by
removing the internal `Box` and `Vec` indirections. These destructors meant that
a lot of landing pads and extra code were generated to manage the runtime
representations. Instead everything can basically be statically computed and
shoved into rodata, so all we need is a giant string compare to lookup what's
what.

Closes #28273
2016-03-15 17:32:34 -07:00
..
debuginfo typestrong constant integers 2016-03-10 12:50:12 +01:00
mir const eval failures aren't fatal, simply return a dummy instead 2016-03-10 12:50:12 +01:00
_match.rs Move projection_mode to InferContext rather than SelectionContext to reduce chance of bugs 2016-03-14 15:05:13 -07:00
adt.rs typestrong constant integers 2016-03-10 12:50:12 +01:00
asm.rs trans: Reify functions & methods to fn ptrs only where necessary. 2016-03-09 16:45:28 +02:00
assert_dep_graph.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
attributes.rs Move projection_mode to InferContext rather than SelectionContext to reduce chance of bugs 2016-03-14 15:05:13 -07:00
base.rs trans: Reify functions & methods to fn ptrs only where necessary. 2016-03-09 16:45:28 +02:00
basic_block.rs
build.rs
builder.rs
cabi_aarch64.rs
cabi_arm.rs
cabi_asmjs.rs
cabi_mips.rs
cabi_powerpc64.rs
cabi_powerpc.rs
cabi_x86_64.rs
cabi_x86_win64.rs
cabi_x86.rs
cabi.rs
callee.rs trans: Reify functions & methods to fn ptrs only where necessary. 2016-03-09 16:45:28 +02:00
cleanup.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
closure.rs Move projection_mode to InferContext rather than SelectionContext to reduce chance of bugs 2016-03-14 15:05:13 -07:00
collector.rs Fixes after rebase 2016-03-14 15:05:15 -07:00
common.rs Move projection_mode to InferContext rather than SelectionContext to reduce chance of bugs 2016-03-14 15:05:13 -07:00
consts.rs simplify const path lookup for constants and associated constants 2016-03-10 12:50:13 +01:00
context.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
controlflow.rs
datum.rs
declare.rs Move projection_mode to InferContext rather than SelectionContext to reduce chance of bugs 2016-03-14 15:05:13 -07:00
disr.rs typestrong constant integers 2016-03-10 12:50:12 +01:00
expr.rs trans: Reify functions & methods to fn ptrs only where necessary. 2016-03-09 16:45:28 +02:00
foreign.rs Track fn type and lifetime parameters in TyFnDef. 2016-03-09 16:45:28 +02:00
glue.rs trans: Reify functions & methods to fn ptrs only where necessary. 2016-03-09 16:45:28 +02:00
inline.rs
intrinsic.rs rustc: Improve compile time of platform intrinsics 2016-03-15 17:32:34 -07:00
llrepr.rs
machine.rs
macros.rs
meth.rs Fixes after rebase 2016-03-14 15:05:15 -07:00
mod.rs
monomorphize.rs trans: Remove unused ref_id from monomorphic_fn. 2016-03-09 16:45:28 +02:00
tvec.rs
type_.rs
type_of.rs trans: Reify functions & methods to fn ptrs only where necessary. 2016-03-09 16:45:28 +02:00
value.rs