[PATCH] D30694: [Polly] Require LoadInst base ptrs to be hoisted.

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 7 06:56:10 PST 2017


Meinersbur created this revision.
Meinersbur added a project: Polly.

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)


https://reviews.llvm.org/D30694

Files:
  include/polly/ScopDetection.h
  lib/Analysis/ScopDetection.cpp
  test/Isl/CodeGen/OpenMP/loop-body-references-outer-values-3.ll
  test/Isl/CodeGen/OpenMP/single_loop_with_loop_invariant_baseptr.ll
  test/ScopDetect/base_pointer.ll
  test/ScopDetect/base_pointer_load_is_inst_inside_invariant_1___%for.i---%exit.jscop
  test/ScopDetect/base_pointer_load_setNewAccessRelation.ll
  test/ScopDetectionDiagnostics/ReportVariantBasePtr-01.ll
  test/ScopInfo/ranged_parameter_2.ll
  test/ScopInfo/variant_base_pointer.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30694.90846.patch
Type: text/x-patch
Size: 9381 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170307/97d82751/attachment.bin>


More information about the llvm-commits mailing list