1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/test/Transforms/RewriteStatepointsForGC
Philip Reames 15b1aa2963 [RewriteStatepointsForGC] Handle extractelement fully in the base pointer algorithm
When rewriting the IR such that base pointers are available for every live pointer, we potentially need to duplicate instructions to propagate the base. The original code had only handled PHI and Select under the belief those were the only instructions which would need duplicated. When I added support for vector instructions, I'd added a collection of hacks for ExtractElement which caught most of the common cases. Of course, I then found the one test case my hacks couldn't cover. :)

This change removes all of the early hacks for extract element. By defining extractelement as a BDV (rather than trying to look through it), we can extend the rewriting algorithm to duplicate the extract as needed.  Note that a couple of peephole optimizations were left in for the moment, because while we now handle extractelement as a first class citizen, we're not yet handling insertelement.  That change will follow in the near future.  

llvm-svn: 244808
2015-08-12 21:00:20 +00:00
..
base-pointers-1.ll [RewriteStatepointsForGC] Adjust naming scheme to be more stable 2015-07-24 19:01:39 +00:00
base-pointers-2.ll [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
base-pointers-3.ll [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
base-pointers-4.ll [RewriteStatepointsForGC] Adjust naming scheme to be more stable 2015-07-24 19:01:39 +00:00
base-pointers-5.ll [RewriteStatepointsForGC] Adjust naming scheme to be more stable 2015-07-24 19:01:39 +00:00
base-pointers-6.ll [RewriteStatepointsForGC] Adjust naming scheme to be more stable 2015-07-24 19:01:39 +00:00
base-pointers-7.ll [RewriteStatepointsForGC] Adjust naming scheme to be more stable 2015-07-24 19:01:39 +00:00
base-pointers-8.ll [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
base-pointers-9.ll [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
base-pointers-10.ll [RewriteStatepointsForGC] Adjust naming scheme to be more stable 2015-07-24 19:01:39 +00:00
base-pointers-11.ll [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
base-pointers.ll [RewriteStatepointsForGC] Adjust naming scheme to be more stable 2015-07-24 19:01:39 +00:00
base-vector.ll [RewriteStatepointsForGC] Handle extractelement fully in the base pointer algorithm 2015-08-12 21:00:20 +00:00
basics.ll [RewriteStatepointsForGC] For some values (like gep's and bitcasts) it's cheaper to clone them after statepoint than to emit proper relocates for them. This change implements this logic. There is alredy similar optimization in CodeGenPrepare, but doing so during RewriteStatepointsForGC allows to capture more opprtunities such as relocates in loops and longer instruction chains. 2015-05-19 15:59:05 +00:00
constants.ll [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
deref-pointers.ll [RewriteStatepointsForGC] Strip deref info after rewriting. 2015-06-02 22:33:37 +00:00
gc_relocate_creation.ll [Statepoints] Support for "patchable" statepoints. 2015-05-12 23:52:24 +00:00
live-vector.ll [RewriteStatepointsForGC] Generalized vector phi/select handling for base pointers 2015-06-26 22:47:37 +00:00
liveness-basics.ll [RewriteStatepointsForGC] For some values (like gep's and bitcasts) it's cheaper to clone them after statepoint than to emit proper relocates for them. This change implements this logic. There is alredy similar optimization in CodeGenPrepare, but doing so during RewriteStatepointsForGC allows to capture more opprtunities such as relocates in loops and longer instruction chains. 2015-05-19 15:59:05 +00:00
preprocess.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
relocate_invoke_result.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
relocation.ll Fix a bunch of trivial cases of 'CHECK[^:]*$' in the tests. NFCI 2015-08-10 19:01:27 +00:00
rematerialize-derived-pointers.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00