Commit Graph

1389 Commits

Author SHA1 Message Date
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
bjorn3 9022e09a3e Fix compilation 2019-12-31 15:56:28 +01:00
bjorn3 b0814a3fd8 Check for cross-ebb temporal overlap between loads and stores 2019-12-31 15:56:28 +01:00
bjorn3 c5f42aef1d Run dead stack_store removal after stack_store to stack_load forwarding 2019-12-31 15:56:28 +01:00
bjorn3 7d35db5319 [WIP] Implement basic stack store to load forwarding 2019-12-31 15:56:28 +01:00
bjorn3 be6cdb28d0 Refactor stack_store removal 2019-12-31 15:56:28 +01:00
bjorn3 943b81bb40 Extract remove_unused_stack_addr_and_stack_load 2019-12-31 15:56:28 +01:00
bjorn3 a8daa7115e Group by stack slot earlier 2019-12-31 15:56:28 +01:00
bjorn3 9d77cb95e1 Merge stack_{addr,load}_insts_users 2019-12-31 15:56:28 +01:00
bjorn3 5047856f00 Use BTreeSet and BTreeMap instead of SecondaryMap 2019-12-31 15:56:28 +01:00
bjorn3 c84b1fee09 Record users of stack_addr and stack_load return values 2019-12-31 15:56:28 +01:00
bjorn3 73961709d6 Outline combine_stack_addr_with_load_store and remove unused stack_load insts 2019-12-31 15:56:28 +01:00
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