Andrew Chin
a288a5ea06
Store nightly snapshot in rust-toolchain file, and use it in cargo.sh
...
The rust-toolchain file can also store an exact nightly snapshot
(instead of just "nightly"), so we can store whatever snapshot that
rustc_codegen_cranelift is known to work with.
This also lets us add a new feature to `cargo.sh` to let it use the
exact same nightly snapshot as cg_clif. If there's a nightly compiler
mismatch, you get a confusing error message like:
error: couldn't load codegen backend "librustc_codegen_cranelift.so":
"librustc_driver-681e2b4f66c73d3e.so: cannot open
shared object file: No such file or directory"
So doing this automatically in cargo.sh is useful.
2020-01-15 12:05:18 -05:00
bjorn3
e798f98bb4
Fix debug build
2020-01-15 13:18:54 +01:00
bjorn3
217beab62a
Reduce the amount of calls to layout_of
2020-01-15 13:18:54 +01:00
bjorn3
0669a49b10
Use release mode instead of debug mode in the readme
...
cc #865
2020-01-15 11:53:24 +01:00
bjorn3
09b44f5d25
Reduce visibility
2020-01-14 17:11:06 +01:00
bjorn3
29fafb44b1
Optimize .debug_line generation
...
This reduces the amount of time spent in .debug_line generation by about 50%
Fixes #807
2020-01-14 16:11:23 +01:00
bjorn3
4fbb45c3f3
Update gimli to 0.20.0
2020-01-14 14:19:43 +01:00
bjorn3
3311c1f7fe
Remove some depencencies
2020-01-14 14:16:06 +01:00
bjorn3
b22b184969
Update Cranelift
2020-01-14 13:55:08 +01:00
bjorn3
b44d6311ca
Rustup to rustc 1.42.0-nightly ( 3ebcfa145
2020-01-12)
2020-01-14 12:29:04 +01:00
bjorn3
c74b306037
Move all cold code to the end of the function
...
Fixes #836
Benchmark #1 : simple-raytracer/raytracer_cg_clif
Time (mean ± σ): 9.250 s ± 0.056 s [User: 9.213 s, System: 0.015 s]
Range (min … max): 9.151 s … 9.348 s 20 runs
Benchmark #2 : simple-raytracer/raytracer_cg_clif_cold_separated
Time (mean ± σ): 9.179 s ± 0.101 s [User: 9.141 s, System: 0.016 s]
Range (min … max): 9.070 s … 9.473 s 20 runs
Summary
'simple-raytracer/raytracer_cg_clif_cold_separated' ran
1.01 ± 0.01 times faster than 'simple-raytracer/raytracer_cg_clif'
2020-01-11 17:57:18 +01:00
bjorn3
38797f8bad
Implement #[track_caller]
...
Fixes #848
2020-01-11 17:10:42 +01:00
bjorn3
fed3b26563
Don't panic on reported const eval errors
2020-01-11 14:28:18 +01:00
bjorn3
2a082209a6
Fix PlaceElem::Subslice length computation
2020-01-11 14:28:18 +01:00
bjorn3
0080f55df2
Fix build
2020-01-11 14:27:39 +01:00
bjorn3
9dad9cf88d
Improve build time for build scripts in release mode
2020-01-10 14:21:45 +01:00
bjorn3
70c9b3b35b
Better self profiling integration
2020-01-10 14:16:27 +01:00
bjorn3
d65ba25ba7
Remove faerie support
2020-01-10 13:30:21 +01:00
bjorn3
2bd7dcd2c0
Update Cranelift
2020-01-10 13:28:31 +01:00
bjorn3
5424d7d55f
Prepare for basic blocks
2020-01-10 12:14:28 +01:00
bjorn3
72729e2211
Disable read feature of gimli
2020-01-09 17:59:59 +01:00
bjorn3
3d5b54d959
Update dependencies
2020-01-09 17:45:40 +01:00
bjorn3
66b2ce7987
Update Cranelift
2020-01-09 17:43:21 +01:00
bjorn3
33ad67c124
Rustup to rustc 1.42.0-nightly ( caa231d99
2020-01-08)
2020-01-09 17:43:10 +01:00
bjorn3
6652f466ef
Rustup to rustc 1.42.0-nightly ( bc1571cc3
2020-01-05)
2020-01-06 20:11:03 +01:00
bjorn3
a3b8619c1e
Revert "Use simd instructions for int and float simd intrinsics"
...
This reverts commit 5e984a32d9
.
It was causing issues with vectors bigger than 128bit
2020-01-04 18:27:00 +01:00
bjorn3
b4802b8054
Fix codegen of unimpl in simd_extract and unimpl simd_insert
2020-01-04 18:20:18 +01:00
bjorn3
1bb848d4ac
Re-use cranelift_codegen::ir::Function for every function
...
Fixes #844
2020-01-04 17:58:38 +01:00
bjorn3
c5a7fca527
Use DUMMY_SP in less places
...
Fixes #845
2020-01-04 17:49:00 +01:00
bjorn3
ca92695a2c
Use IndexVec for ebb_map
...
cc #745
2020-01-04 13:23:42 +01:00
bjorn3
ff1c62365e
Remove faerie machO alignment workaround
...
Fixes #738
2020-01-04 13:12:13 +01:00
bjorn3
c9034e54e5
Add two FIXME's
2020-01-04 12:40:56 +01:00
bjorn3
82213a3b7f
Merge pull request #853 from bjorn3/opt_stack2reg
...
Add stack2reg optimization pass
2020-01-04 12:40:10 +01:00
bjorn3
87d6953719
Add documentation about the UB of the stack2reg optimization
2020-01-04 11:31:56 +01:00
bjorn3
e9a8d8bf67
Enable incr comp in release mode
2020-01-03 21:30:56 +01:00
bjorn3
196008bee3
Disable stack2reg opt when optimizations are disabled
2019-12-31 16:43:24 +01:00
bjorn3
4c7abd504c
Revert some changes
2019-12-31 15:59:49 +01:00
bjorn3
dbb118a5bc
Fix some warnings
2019-12-31 15:56:33 +01:00
bjorn3
0cb2b60559
Don't print debug messages in release mode
2019-12-31 15:56:28 +01:00
bjorn3
b47c89de0e
Remove unnecessary check from temporal_order
2019-12-31 15:56:28 +01:00
bjorn3
790132523f
Support store to load forwarding for different types of the same size
2019-12-31 15:56:28 +01:00
bjorn3
fd5efa0921
Fix potential_stores_for_load
2019-12-31 15:56:28 +01:00
bjorn3
d6c2db2aea
Return use domtree.dominates in temporal_order
2019-12-31 15:56:28 +01:00
bjorn3
7c4debdb7c
Add functions to remove loads stores etc
2019-12-31 15:56:28 +01:00
bjorn3
79148a3c1e
Extract potential_stores_for_load and potential_loads_of_store functions
2019-12-31 15:56:28 +01:00
bjorn3
af5a2a8509
Let remove_unused_stack_addr_and_stack_load take OptimizeContext
2019-12-31 15:56:28 +01:00
bjorn3
0f3eab589e
Add OptimizeContext
2019-12-31 15:56:28 +01:00
bjorn3
df7f68236c
Remove stack_store without following stack_load
2019-12-31 15:56:28 +01:00
bjorn3
6320c65484
Fix temporal_order argument order for store to load forwarding
2019-12-31 15:56:28 +01:00
bjorn3
7579663199
Extract temporal_order function
2019-12-31 15:56:28 +01:00