bjorn3
3ef6170142
Remove CPlace::NoPlace
2020-04-11 15:01:04 +02:00
bjorn3
53307fd2e1
Introduce PointerBase::Dangling
2020-04-11 14:59:01 +02:00
bjorn3
291c75d10b
Enable the rust_2018_idioms and unused_lifetimes lints and fix all warnings
...
They are set to deny by default in the rust-lang/rust repo
2020-04-09 12:12:55 +02:00
bjorn3
ac1c5d6954
Rustup to rustc 1.44.0-nightly (537ccdf3a 2020-04-02)
2020-04-03 11:54:18 +02:00
bjorn3
17f99b4a96
Take Place by value instead of by reference
2020-04-02 17:23:15 +02:00
bjorn3
13e3a3c8b0
Rustup to rustc 1.44.0-nightly (211365947 2020-03-30)
2020-03-31 13:20:19 +02:00
bjorn3
017a9b7641
Rustup to rustc 1.44.0-nightly (699f83f52 2020-03-29)
2020-03-30 19:00:24 +02:00
bjorn3
d2964f6a71
Rustup to rustc 1.44.0-nightly (75208942f 2020-03-27)
2020-03-28 14:20:24 +01:00
bjorn3
f288959c00
Limit publicness to crate where possible and remove unused imports
2020-03-27 12:14:45 +01:00
bjorn3
b113e88ddb
Fix warnings
2020-03-24 13:41:19 +01:00
bjorn3
3c9ebdb194
Rustup to rustc 1.44.0-nightly (1edd389cc 2020-03-23)
2020-03-24 13:09:44 +01:00
bjorn3
a59479bd37
Add clif ir comments for stack2reg opt
2020-03-20 12:18:40 +01:00
bjorn3
992fae08c4
Simplify handling of unimplemented stuff
2020-03-17 16:26:56 +01:00
bjorn3
dcc86d306c
Emulate <Box<F> as FnOnce>::call_once
without alloca
...
Fixes #884
cc #15
2020-03-10 20:48:58 +01:00
bjorn3
240d56c33c
Support virtual calls with unsized self argument
2020-03-10 20:41:31 +01:00
bjorn3
430f738392
Update Cranelift for basic blocks
2020-02-14 18:23:29 +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
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
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
33ad67c124
Rustup to rustc 1.42.0-nightly (caa231d99 2020-01-08)
2020-01-09 17:43:10 +01:00
bjorn3
ca92695a2c
Use IndexVec for ebb_map
...
cc #745
2020-01-04 13:23:42 +01:00
bjorn3
c3daf6d220
Add clif ir comment for write_cvalue
2019-12-25 14:38:22 +01:00
bjorn3
2920cc48e6
Fix SSA analysis for value types with PassMode::ByRef
2019-12-25 14:35:16 +01:00
bjorn3
399cada762
Directly depend on cranelift_{codegen,frontend}
...
Fixes #838
2019-12-24 12:43:20 +01:00
bjorn3
67a0fdad19
Make llvm_intrinsics a submodule of intrinsics
2019-12-23 13:57:55 +01:00
bjorn3
15a310345d
Improve local ir comments
2019-12-22 17:04:33 +01:00
bjorn3
e63a94fca6
Rustup to rustc 1.42.0-nightly (fc5deca21 2019-12-21)
2019-12-22 16:53:06 +01:00
bjorn3
ad72afaad3
Remove CPlaceInner::Stack
2019-12-20 22:00:12 +01:00
bjorn3
8f5ef6172c
Remove to_addr and to_addr_maybe_unsized
2019-12-20 19:10:08 +01:00
bjorn3
967709f31a
[OPT] Use load and store offsets instead of iadd_imm
2019-12-20 16:02:47 +01:00
bjorn3
bfff2a50fd
Fix debug build
2019-12-18 20:25:05 +01:00
bjorn3
1c79cf4c0a
[OPT] Use RETURN_PLACE instead of fn_sig.output() to get return layout
2019-12-17 18:41:13 +01:00
bjorn3
86cdd1909b
[OPT] Use IndexVec instead of HashMap in ssa analysis
2019-12-17 17:49:12 +01:00
bjorn3
172522c2e7
[OPT] Push fx.monomorphize to the callers of fx.layout_of
...
This prevents some repeated monomorphizations
2019-12-17 16:58:34 +01:00
bjorn3
d502f8e652
[OPT] Avoid calling target_triple for every call to codegen
2019-12-17 16:34:48 +01:00
bjorn3
c6086a8fd7
Rustup to rustc 1.41.0-nightly (6d77e45f0 2019-12-04)
2019-12-05 21:00:57 +01:00
bjorn3
177b0d2f57
Rustup to rustc 1.41.0-nightly (ded5ee001 2019-11-13)
2019-11-14 21:13:40 +01:00
bjorn3
5407b51aa7
Rustup to rustc 1.40.0-nightly (9e346646e 2019-11-08)
2019-11-09 11:14:18 +01:00
bjorn3
82fde5b622
Remove bitflags dependency
2019-10-06 17:52:23 +02:00
bjorn3
0db605040e
Use CallConv::triple_default instead of hard coding SystemV
...
Fixes #718
2019-09-28 17:00:27 +02:00
bjorn3
44792f1089
Rustup to rustc 1.40.0-nightly (084beb83e 2019-09-27)
2019-09-28 14:06:12 +02:00
bjorn3
fdfb1eda2c
Rustup to rustc 1.39.0-nightly (97e58c0d3 2019-09-20)
2019-09-21 11:30:29 +02:00
bjorn3
bfb49e7d19
Rustup to rustc 1.39.0-nightly (6e19f3f38 2019-09-06)
2019-09-07 10:51:00 +02:00
Atul Bhosale
f481a4b685
Format code using 'cargo fmt'
2019-08-31 22:58:09 +05:30
bjorn3
15b9834d7d
Don't copy ByRef passed types to local stack slot when not necessary
...
Eg when the local is immutable **and** the type is freeze.
This makes the simple raytracer runtime benchmark 1% faster than cg_llvm
without optimizations. Before it was 2% slower.
cc #691
cc #684
2019-08-30 15:42:07 +02:00
bjorn3
76d2e085db
Improve abi ir comments a bit
2019-08-30 15:07:15 +02:00