llvm-project/polly/test/Simplify
Michael Kruse 6d7a7896ce [ScopInfo] Use map for value def/PHI read accesses.
Before this patch, ScopInfo::getValueDef(SAI) used
getStmtFor(Instruction*) to find the MemoryAccess that writes a
MemoryKind::Value. In cases where the value is synthesizable within the
statement that defines, the instruction is not added to the statement's
instruction list, which means getStmtFor() won't return anything.

If the synthesiable instruction is not synthesiable in a different
statement (due to being defined in a loop that and ScalarEvolution
cannot derive its escape value), we still need a MemoryKind::Value
and a write to it that makes it available in the other statements.
Introduce a separate map for this purpose.

This fixes MultiSource/Benchmarks/MallocBench/cfrac where
-polly-simplify could not find the writing MemoryAccess for a use. The
write was not marked as required and consequently was removed.

Because this could in principle happen as well for PHI scalars,
add such a map for PHI reads as well.

llvm-svn: 313881
2017-09-21 14:23:11 +00:00
..
coalesce_3partials.ll [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_3partials___%for---%return.jscop [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_3partials___%for---%return.jscop.transformed [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_disjointelements.ll [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_disjointelements___%for---%return.jscop [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_disjointelements___%for---%return.jscop.transformed [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_overlapping.ll [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_overlapping___%for---%return.jscop [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_overlapping___%for---%return.jscop.transformed [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_partial.ll [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_partial___%for---%return.jscop [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
coalesce_partial___%for---%return.jscop.transformed [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
dead_access_load.ll [Simplify] Remove unused instructions and accesses. 2017-07-20 16:21:55 +00:00
dead_access_phi.ll [Simplify] Remove unused instructions and accesses. 2017-07-20 16:21:55 +00:00
dead_access_value.ll [Simplify] Remove unused instructions and accesses. 2017-07-20 16:21:55 +00:00
dead_instruction.ll [Simplify] Remove unused instructions and accesses. 2017-07-20 16:21:55 +00:00
emptyaccessdomain.ll [Simplify] Fix typo in statistics output. NFC. 2017-07-28 16:57:51 +00:00
emptyaccessdomain___%for---%return.jscop [Simplify] Remove partial write accesses with empty domain. 2017-07-22 20:33:09 +00:00
emptyaccessdomain___%for---%return.jscop.transformed [Simplify] Remove partial write accesses with empty domain. 2017-07-22 20:33:09 +00:00
exit_phi_accesses-2.ll [Simplify] Count PHINodes in simplifiable exit nodes as escaping use. 2017-07-27 14:09:31 +00:00
gemm.ll [Simplify] Remove all kinds of redundant scalar writes. 2017-07-31 17:04:55 +00:00
gemm___%bb3---%bb28.jscop [Simplify] Add test case which we currently miss 2017-07-11 10:30:45 +00:00
gemm___%bb3---%bb28.jscop.transformed [Simplify] Add test case which we currently miss 2017-07-11 10:30:45 +00:00
nocoalesce_differentvalues.ll [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_differentvalues___%for---%return.jscop [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_differentvalues___%for---%return.jscop.transformed [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_elementmismatch.ll [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_elementmismatch___%for---%return.jscop [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_elementmismatch___%for---%return.jscop.transformed [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_readbetween.ll [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_readbetween___%for---%return.jscop [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_readbetween___%for---%return.jscop.transformed [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_writebetween.ll [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_writebetween___%for---%return.jscop [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
nocoalesce_writebetween___%for---%return.jscop.transformed [Simplify] Implement write accesses coalescing. 2017-07-29 16:21:16 +00:00
notdead_region_exitphi.ll [test] Add test case for -polly-simplify. NFC. 2017-07-29 00:06:06 +00:00
notdead_region_innerphi.ll [Simplify] Do not remove dependencies of phis within region stmts. 2017-07-28 23:22:32 +00:00
notredundant_region_loop.ll [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
notredundant_region_loop___%for---%return.jscop [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
notredundant_region_loop___%for---%return.jscop.transformed [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
notredundant_region_middle.ll [JSON] Make the failure to parse a jscop file a hard error 2017-08-10 14:53:25 +00:00
notredundant_synthesizable_unknownit.ll [ScopInfo] Use map for value def/PHI read accesses. 2017-09-21 14:23:11 +00:00
out-of-scop-use-in-region-entry-phi-node.ll [Simplify] Fix invalid removal write for escaping values. 2017-07-26 19:58:15 +00:00
overwritten.ll [Simplify] Remove writes that are overwritten. 2017-05-13 11:49:34 +00:00
overwritten_3phi.ll [tests] Set -polly-import-jscop-dir=%S always 2017-07-11 10:39:01 +00:00
overwritten_3phi___%for---%return.jscop [Simplify] Remove identical write removal. NFC. 2017-05-13 12:20:57 +00:00
overwritten_3phi___%for---%return.jscop.transformed [Simplify] Remove identical write removal. NFC. 2017-05-13 12:20:57 +00:00
overwritten_3store.ll [Simplify] Remove writes that are overwritten. 2017-05-13 11:49:34 +00:00
overwritten_implicit_and_explicit.ll [tests] Set -polly-import-jscop-dir=%S always 2017-07-11 10:39:01 +00:00
overwritten_implicit_and_explicit___%for---%return.jscop [Simplify] Remove writes that are overwritten. 2017-05-13 11:49:34 +00:00
overwritten_implicit_and_explicit___%for---%return.jscop.transformed [Simplify] Remove writes that are overwritten. 2017-05-13 11:49:34 +00:00
overwritten_loadbetween.ll [Simplify] Remove writes that are overwritten. 2017-05-13 11:49:34 +00:00
overwritten_scalar.ll [tests] Set -polly-import-jscop-dir=%S always 2017-07-11 10:39:01 +00:00
overwritten_scalar___%for---%return.jscop [Simplify] Remove identical write removal. NFC. 2017-05-13 12:20:57 +00:00
overwritten_scalar___%for---%return.jscop.transformed [Simplify] Remove identical write removal. NFC. 2017-05-13 12:20:57 +00:00
pass_existence.ll
phi_in_regionstmt.ll [ScopInfo] Fix assertion for PHIs not in a region stmts entry. 2017-07-25 13:28:39 +00:00
pr33323.ll [tests] Set -polly-import-jscop-dir=%S always 2017-07-11 10:39:01 +00:00
pr33323___%for.body98---%for.cond87.loopexit.jscop [Simplify] Use execution order of memory accesses. 2017-06-06 17:46:42 +00:00
pr33323___%for.body98---%for.cond87.loopexit.jscop.transformed [Simplify] Use execution order of memory accesses. 2017-06-06 17:46:42 +00:00
redundant.ll
redundant_differentindex.ll [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_partialwrite.ll [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_partialwrite___%for---%return.jscop [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_partialwrite___%for---%return.jscop.transformed [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_region.ll [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_region___%for---%return.jscop [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_region___%for---%return.jscop.transformed [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_region_scalar.ll [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_region_scalar___%for---%return.jscop [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_region_scalar___%for---%return.jscop.transformed [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
redundant_scalarwrite.ll [Simplify] Remove all kinds of redundant scalar writes. 2017-07-31 17:04:55 +00:00
redundant_scalarwrite___%for---%return.jscop [Simplify] Remove all kinds of redundant scalar writes. 2017-07-31 17:04:55 +00:00
redundant_scalarwrite___%for---%return.jscop.transformed [Simplify] Remove all kinds of redundant scalar writes. 2017-07-31 17:04:55 +00:00
redundant_storebetween.ll [Simplify] Rewrite redundant write detection algorithm. 2017-08-01 20:01:34 +00:00
scalability1.ll [Simplify] Improve scalability. 2017-08-01 19:39:11 +00:00
scalability2.ll [Simplify] Improve scalability. 2017-08-01 19:39:11 +00:00
ununsed_read_in_region_entry.ll [Simplify] Actually remove unsed instruction from region header. 2017-09-05 19:44:39 +00:00