about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorAriel Ben-Yehuda <ariel.byd@gmail.com>2015-04-19 23:38:37 +0300
committerAriel Ben-Yehuda <ariel.byd@gmail.com>2015-04-19 23:38:37 +0300
commit94a1b266f9b3688d8fb6ff382e7b846a8d4eb38d (patch)
treece0e1d08318b1e0c51712625cfa442adfe628d32 /src/rustllvm/RustWrapper.cpp
parentbe41e9806747febb761d4d9ba85e937197db09af (diff)
downloadrust-94a1b266f9b3688d8fb6ff382e7b846a8d4eb38d.tar.gz
rust-94a1b266f9b3688d8fb6ff382e7b846a8d4eb38d.zip
Call skolemize_late_bound_regions only after fast rejection
skolemize_late_bound_regions essentially copies the entire type (most of the times it shouldn't, but it does), and match_impl runs millions of times.

Times compiling rustc, tested with
$ make -j4 rustc-stage1
$ ( time RUSTFLAGS=-Z time-passes make -j4 rustc-stage2 ) # need LLVM time for calibration

Before:
real	21m44.960s
user	29m38.812s
sys	0m14.944s

After:
real	19m31.445s
user	26m47.260s
sys	0m14.952s

Making this is a 10% performance improvement.

LLVM passes took 867 seconds before, 862 seconds after.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions