740 Commits

Author SHA1 Message Date
bjorn3
d821f154c5 Disable the code_layout optimization
When compiling libcore, it causes ebb params to be dropped for a certain function
2020-01-25 17:55:48 +01:00
bjorn3
92d4356130 Add #[cfg(debug_assertions)] to write_clif_file
This silences a warning in release mode
2020-01-25 17:54:49 +01:00
bjorn3
8de317dd8f Update compiler_builtins 2020-01-25 17:24:45 +01:00
bjorn3
74c7a7b7c5 Replace unimplemented! with unreachable! when it will never be supported 2020-01-25 16:24:48 +01:00
bjorn3
242f2e3c75 Fix correctness of optimization 2020-01-25 16:24:15 +01:00
bjorn3
9cfb9470c5 Allow unsized types as function parameters 2020-01-25 16:23:54 +01:00
bjorn3
85ce626865 Improve PlaceElem::Subslice handling 2020-01-22 20:10:00 +01:00
bjorn3
ddd3d95a7e Make atomic instructions atomic using a global lock 2020-01-22 20:09:55 +01:00
bjorn3
a3f378754b Warn when using LTO 2020-01-22 20:06:05 +01:00
bjorn3
aa5c49cf2f Make unused stack slots zero sized in stack2reg 2020-01-22 18:57:36 +01:00
bjorn3
167c7f2201 Don't force static refs to const memory 2020-01-22 18:56:50 +01:00
bjorn3
c4acc78e4d Allow more types in CValue::const_val 2020-01-22 18:56:36 +01: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
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
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
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
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 5e984a32d9b8a381d0b7f192f4a915aac59f18db.

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
87d6953719 Add documentation about the UB of the stack2reg optimization 2020-01-04 11:31: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