28 Commits

Author SHA1 Message Date
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
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