This is an archive of the discontinued LLVM Phabricator instance.

[Polly] Require LoadInst base ptrs to be hoisted.
ClosedPublic

Authored by Meinersbur on Mar 7 2017, 6:56 AM.

Details

Summary

Only when load-hoisted we can be sure the base pointer is invariant during the SCoP's execution. Most of the time it would be added to the required hoists for the alias checks anyway, except with -polly-ignore-aliasing, -polly-use-runtime-alias-checks=0 or if AliasAnalysis is already sure it doesn't alias with anything.

Two more parts in Polly assume that this load-hoisting took place:

  • setNewAccessRelation() which contains an assert which tests this.
  • BlockGenerator which would use to the base ptr from the original code if not load-hoisted (if the access expression is regenerated)

Diff Detail

Repository
rL LLVM

Event Timeline

Meinersbur created this revision.Mar 7 2017, 6:56 AM
grosser accepted this revision.Mar 7 2017, 7:12 AM
This revision is now accepted and ready to land.Mar 7 2017, 7:12 AM
This revision was automatically updated to reflect the committed changes.