bjorn3
b6642e5cd8
Re-order some code
2019-12-31 15:56:28 +01:00
bjorn3
8b82f4f989
[WIP] Add stack2reg optimization pass
2019-12-31 15:56:28 +01:00
bjorn3
7564a043d0
Fix some warnings
2019-12-31 15:53:18 +01:00
bjorn3
7e6d533af2
Rustup to rustc 1.42.0-nightly ( a9dd56ff9
2019-12-30)
2019-12-31 15:47:58 +01:00
bjorn3
50d7497708
Write scalars separately for Abi::ScalarPair in write_cvalue
...
This makes it easier to perform store to load forwarding
2019-12-31 15:28:15 +01:00
bjorn3
958c58545f
Only codegen a trap for functions with uninhabited arguments
...
Fixes #847
2019-12-28 11:10:21 +01:00
bjorn3
8bf5cd345e
Rustup to rustc 1.42.0-nightly ( 74c4e6a98
2019-12-27)
2019-12-28 10:57:49 +01:00
bjorn3
7b4fc34d8b
Merge pull request #842 from bjorn3/real_simd
...
Codegen simd intrinsics as simd clif instructions
2019-12-25 19:49:07 +01:00
bjorn3
30a760dda2
Make it possible it use value_field for SIMD values stored ByVal
2019-12-25 14:38:51 +01:00
bjorn3
0ebc14cc40
Remove unused macro args
2019-12-25 14:38:51 +01:00
bjorn3
9eb9436481
Fix indentation
2019-12-25 14:38:51 +01:00
bjorn3
b35a5da4ea
Remove vector support from load_scalar
2019-12-25 14:38:51 +01:00
bjorn3
5e984a32d9
Use simd instructions for int and float simd intrinsics
2019-12-25 14:38:51 +01:00
bjorn3
f8e846dee0
Add load_vector function
2019-12-25 14:38:37 +01:00
bjorn3
dadfbeab6c
Don't use stack_{load,store} for vectors
2019-12-25 14:38:37 +01:00
bjorn3
78cdcd62be
Don't limit vector size
2019-12-25 14:38:37 +01:00
bjorn3
73fd311291
[WIP] Real simd support
2019-12-25 14:38:37 +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
ca93bcba5d
Improve lane_type_and_count
2019-12-25 14:34:59 +01:00
bjorn3
7ff01a4d59
Use mir::SourceInfo again in FunctionCx.source_info_set
...
Fixes #800
2019-12-24 12:44:07 +01:00
bjorn3
399cada762
Directly depend on cranelift_{codegen,frontend}
...
Fixes #838
2019-12-24 12:43:20 +01:00
bjorn3
047eaf14ba
Rustup to rustc 1.42.0-nightly ( 9ae6cedb8
2019-12-23)
2019-12-24 12:27:11 +01:00
bjorn3
d89f307ea2
Move simd intrinsics to intrinsics/simd.rs
2019-12-23 13:58:17 +01:00
bjorn3
67a0fdad19
Make llvm_intrinsics a submodule of intrinsics
2019-12-23 13:57:55 +01:00
bjorn3
95b08a7418
Merge pull request #841 from bjorn3/dependabot/cargo/smallvec-1.1.0
...
Bump smallvec from 1.0.0 to 1.1.0
2019-12-23 13:57:36 +01:00
dependabot-preview[bot]
f0b553df5a
Bump smallvec from 1.0.0 to 1.1.0
...
Bumps [smallvec](https://github.com/servo/rust-smallvec ) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases )
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.0.0...v1.1.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 12:50:16 +00:00
bjorn3
82b52a8744
Rustup to rustc 1.42.0-nightly ( 9b98af84c
2019-12-22)
2019-12-23 13:25:22 +01:00
bjorn3
15a310345d
Improve local ir comments
2019-12-22 17:04:33 +01:00
bjorn3
df641e1679
Update Cranelift
...
bytecodealliance/cranelift#1305 has been fixed.
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
2485994803
Rustup to rustc 1.42.0-nightly ( 01a46509a
2019-12-20)
2019-12-21 11:22:12 +01:00
bjorn3
dd675a26fd
Revert "Update Cranelift"
...
This reverts commit 81eb73365e
.
Caused SIGSEGV: https://github.com/bytecodealliance/cranelift/issues/1305
2019-12-20 22:03:32 +01:00
bjorn3
ad72afaad3
Remove CPlaceInner::Stack
2019-12-20 22:00:12 +01:00
bjorn3
3d363d54fd
Update log dependency
2019-12-20 21:39:21 +01:00
bjorn3
81eb73365e
Update Cranelift
2019-12-20 21:34:46 +01:00
bjorn3
5cb81cdb16
Merge pull request #839 from bjorn3/fold_offset_into_load_store
...
Some runtime optimizations
2019-12-20 21:32:39 +01:00
bjorn3
fbbc910ddc
[OPT] Emit stack_{load,store} where possible
2019-12-20 19:30:56 +01:00
bjorn3
8f5ef6172c
Remove to_addr and to_addr_maybe_unsized
2019-12-20 19:10:08 +01:00
bjorn3
696053e69f
Set memflags for vtable loads
2019-12-20 16:16:28 +01:00
bjorn3
967709f31a
[OPT] Use load and store offsets instead of iadd_imm
2019-12-20 16:02:47 +01:00
bjorn3
76cfa333be
Fix init and uninit intrinsics for u/i128
2019-12-20 12:24:48 +01:00
bjorn3
a125b62536
[OPT] Don't force return value of call to stack
...
Benchmark #1 : ./simple_raytracer_before
Time (mean ± σ): 14.420 s ± 0.568 s [User: 14.376 s, System: 0.026 s]
Range (min … max): 13.730 s … 15.170 s 10 runs
Benchmark #2 : simple_raytracer_after
Time (mean ± σ): 13.679 s ± 0.576 s [User: 13.628 s, System: 0.020 s]
Range (min … max): 12.761 s … 14.552 s 10 runs
Summary
'./simple_raytracer_after' ran
1.05 ± 0.06 times faster than './simple_raytracer_before'
2019-12-20 12:13:07 +01:00
bjorn3
a528e37302
Fix codegen of ctlz and cttz intrinsics
2019-12-20 12:01:55 +01:00
bjorn3
8d2db1b75d
Monomorphize type of promoted
2019-12-18 20:41:07 +01:00
bjorn3
79ec8948d8
Fix some warnings
2019-12-18 20:26:41 +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