about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-03-13 15:01:37 -0700
committerAlex Crichton <alex@alexcrichton.com>2016-03-15 17:32:34 -0700
commit87ede2da549632de443859c8e08f0c977849d8b7 (patch)
tree9d81fa91977735fda9457e1f6ff0d311413394e9 /src/rustllvm/RustWrapper.cpp
parent74dfc1ddd9d6a9f541bc526c3401b92bcd16bd2b (diff)
downloadrust-87ede2da549632de443859c8e08f0c977849d8b7.tar.gz
rust-87ede2da549632de443859c8e08f0c977849d8b7.zip
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
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions