This is an archive of the discontinued LLVM Phabricator instance.

[Polly][Simplify] Remove identical write removal. NFC.
ClosedPublic

Authored by Meinersbur on May 12 2017, 11:48 AM.

Details

Summary

Removal of overwritten writes currently encompasses all the cases of the identical write removal.

Identical write removal might still be superior when partial writes (in preparation) do not share exactly the same domain, but can be merged into a single write. However, this could be implemented with overwritten write removal as well.

The identical write removal algorithm could be extended to handle all cases of overwritten removal, but with O(n^3) performance characteristic.

There is an observable behavioral change in that the last, instead of the first, MemoryAccess is kept. This should not affect the generated code, however.

Diff Detail

Repository
rL LLVM

Event Timeline

grosser edited edge metadata.May 13 2017, 2:58 AM

Hi Michael,

it is not fully clear what this patch is about. I assume this is a WIP alternative to https://reviews.llvm.org/D33142. My current understanding is that https://reviews.llvm.org/D33142 is stable and this is still very much work in progress (also the patch in this submission seems broken). Not sure what you had in mind, but it seems we should go for https://reviews.llvm.org/D33142 and keep this discussing until until we figure out that they work well. Indeed, Indeed, I am worried about the O(N^3) complexity.

overwritten.ll
3 ↗(On Diff #98809)

Why is there a patch in this file?

Meinersbur updated this revision to Diff 98884.May 13 2017, 5:19 AM
  • Rebase
  • Remove patch file
  • Remove double defintions

Hi Michael,

it is not fully clear what this patch is about.

It only removes the "identical write removal" algorithm. "overwritten writes removal" does the same thing (and more).

grosser accepted this revision.May 13 2017, 5:23 AM

Ah, so this is just a cleanup. LGTM them.

This revision is now accepted and ready to land.May 13 2017, 5:23 AM
This revision was automatically updated to reflect the committed changes.
polly/trunk/test/Simplify/identical_3phi___%for---%return.jscop.transformed