llvm-project/polly/test/DeLICM
Michael Kruse 9fb3ab1b19 [DeLICM] Add -polly-delicm-overapproximate-writes option.
One of the current limitations of DeLICM is that it only creates
PHI WRITEs that it knows are read by some PHI. Such writes may not span
all instances of a statement. Polly's code generator currently does not
support MemoryAccesses that are not executed in all instances
('partial accesses') and so has to give up on a possible mapping.

This workaround has once been suggested by Tobias Grosser: Try to
interpolate an arbitrary expansion to all instances. It will be checked
for possible conflicts with the existing Knowledge and can be applied if
the conflict checking result is that no semantics are changed.

Expansion is done by simplifying the mapping by coalescing with the hope
that coalescing will find a polyhedral 'rule' of the relevant map. It is
then 'gist'-ed using the domain of the relevant instances such that the
rule is expanded to the universe and finally intersected with the domain
of all statement instances.

The expansion makes conflicts become more likely, the found rule may
still not encompass all statement instances and the found rule exposes
internals of isl's implementation of coalesce and gist. The latter means
that the result depends on how much effort the implementation invests
into finding a rule which may change between versions of isl. Trivial
implementations of gist and coalesce just return the input arguments.

A patch that makes codegen support partial accesses is in preparation
as well.

Differential Revision: https://reviews.llvm.org/D30763

llvm-svn: 297373
2017-03-09 11:23:22 +00:00
..
nomap_alreadymapped.ll [DeLICM] Add nomap regressions tests. NFC. 2017-02-27 15:53:18 +00:00
nomap_escaping.ll [DeLICM] Add nomap regressions tests. NFC. 2017-02-27 15:53:18 +00:00
nomap_occupied.ll [DeLICM] Add nomap regressions tests. NFC. 2017-02-27 15:53:18 +00:00
nomap_readonly.ll [DeLICM] Add nomap regressions tests. NFC. 2017-02-27 15:53:18 +00:00
nomap_spuriouswrite.ll [DeLICM] Add nomap regressions tests. NFC. 2017-02-27 15:53:18 +00:00
nomap_storagesize.ll [DeLICM] Add nomap regressions tests. NFC. 2017-02-27 15:53:18 +00:00
nomap_writewrite.ll [DeLICM] Add nomap regressions tests. NFC. 2017-02-27 15:53:18 +00:00
pass_existance.ll
reduction_overapproximate.ll [DeLICM] Add -polly-delicm-overapproximate-writes option. 2017-03-09 11:23:22 +00:00
reduction_preheader.ll
reject_loadafterstore.ll [DeLICM] Add regression tests for DeLICM reject cases. 2017-02-22 15:14:08 +00:00
reject_outofquota.ll [DeLICM] Add regression tests for DeLICM reject cases. 2017-02-22 15:14:08 +00:00
reject_storeafterstore.ll [DeLICM] Add regression tests for DeLICM reject cases. 2017-02-22 15:14:08 +00:00
reject_storeinsubregion.ll [DeLICM] Add regression tests for DeLICM reject cases. 2017-02-22 15:14:08 +00:00
reject_unusualstore.ll [DeLICM] Add regression tests for DeLICM reject cases. 2017-02-22 15:14:08 +00:00
skip_maywrite.ll [DeLICM] Regression test for skipping map targets. 2017-02-23 10:25:20 +00:00
skip_notinloop.ll [DeLICM] Regression test for skipping map targets. 2017-02-23 10:25:20 +00:00
skip_scalaraccess.ll [DeLICM] Regression test for skipping map targets. 2017-02-23 10:25:20 +00:00