[PATCH] [Polly] Runtime alias checks

Johannes Doerfert doerfert at cs.uni-saarland.de
Tue Aug 26 14:13:43 PDT 2014


Hi grosser, sebpop, simbuerg,

Allow the IslExprBuilder to compare pointers


Ensure the runtime condition is always a i1 type


Allow the IslExprBuilder to build address of expressions


[Fix] Expression builder access expressions

  Access expressions (e.g., A[i]) are now treated as left hand values.
  Thus, the isl expression builder will create a load of A[i] instead of
  a gep pointing to the address. If the gep is needed use the address of
  operator.


Build and print alias groups

  This change will build and print all alias groups (minimal/maximal
  accesses to possible aliasing base pointers) we have to check before
  we can assume an alias free environment.


Generate runtime alias checks.

  This check will also annotate the IslAst with runtime alias checks.
  Most imporantly it makes -polly-use-runtime-alias-checks=true save for
  the isl code generator.

http://reviews.llvm.org/D5077

Files:
  include/polly/CodeGen/IslExprBuilder.h
  include/polly/ScopDetection.h
  include/polly/ScopInfo.h
  include/polly/Support/GICHelper.h
  lib/Analysis/ScopDetection.cpp
  lib/Analysis/ScopInfo.cpp
  lib/CodeGen/BlockGenerators.cpp
  lib/CodeGen/IslAst.cpp
  lib/CodeGen/IslCodeGeneration.cpp
  lib/CodeGen/IslExprBuilder.cpp
  test/Isl/Ast/alias_simple_1.ll
  test/Isl/Ast/alias_simple_2.ll
  test/Isl/Ast/alias_simple_3.ll
  test/Isl/Ast/aliasing_multiple_alias_groups.ll
  test/Isl/Ast/aliasing_parametric_simple_1.ll
  test/Isl/Ast/aliasing_parametric_simple_2.ll
  test/Isl/Ast/run-time-condition.ll
  test/Isl/Ast/simple-run-time-condition.ll
  test/Isl/CodeGen/MemAccess/codegen_simple_float.ll
  test/Isl/CodeGen/MemAccess/codegen_simple_md_float.ll
  test/Isl/CodeGen/MemAccess/simple___%for.cond---%for.end14.jscop
  test/Isl/CodeGen/MemAccess/simple___%for.cond---%for.end14.jscop.transformed
  test/Isl/CodeGen/MemAccess/simple_analyze.ll
  test/Isl/CodeGen/aliasing_parametric_simple_1.ll
  test/Isl/CodeGen/aliasing_parametric_simple_2.ll
  test/Isl/CodeGen/multidim_2d_parametric_array_static_loop_bounds.ll
  test/Isl/CodeGen/run-time-condition-with-scev-parameters.ll
  test/ScopDetect/aliasing_parametric_simple_1.ll
  test/ScopDetect/aliasing_parametric_simple_2.ll
  test/ScopDetect/aliasing_simple_1.ll
  test/ScopDetect/aliasing_simple_2.ll
  test/ScopDetectionDiagnostics/ReportAlias-01.ll
  test/ScopInfo/Alias-0.ll
  test/ScopInfo/Alias-1.ll
  test/ScopInfo/Alias-2.ll
  test/ScopInfo/Alias-3.ll
  test/ScopInfo/Alias-4.ll
  test/ScopInfo/aliasing_multiple_alias_groups.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5077.12968.patch
Type: text/x-patch
Size: 65503 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140826/e2a1b91c/attachment.bin>


More information about the llvm-commits mailing list