[PATCH] D12264: Identify and hoist loop invariant loads

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 22 04:21:47 PDT 2015


jdoerfert created this revision.
jdoerfert added reviewers: grosser, Meinersbur.
jdoerfert added a subscriber: Polly.
Herald added a subscriber: sanjoy.

  As a first step in the direction of assumed invariant loads (loads
  that are not written in some context) we now detect and hoist
  definitively invariant loads. As hoisting is the goal we will not
  detect non-loop carried invariant loads. Invariant loads that are
  detected will be preloaded in the code generation and used within
  the SCoP. If the load is only conditionally executed the preloaded
  version will also only be executed under the same condition, hence
  we will never access memory that wouldn't have been accessed
  otherwise. This is also the most distinguishing feature to licm.

http://reviews.llvm.org/D12264

Files:
  include/polly/CodeGen/IslNodeBuilder.h
  include/polly/ScopInfo.h
  lib/Analysis/ScopDetection.cpp
  lib/Analysis/ScopInfo.cpp
  lib/CodeGen/BlockGenerators.cpp
  lib/CodeGen/CodeGeneration.cpp
  lib/CodeGen/IslNodeBuilder.cpp
  test/Isl/CodeGen/exprModDiv.ll
  test/Isl/CodeGen/invariant_load.ll
  test/Isl/CodeGen/invariant_load_base_pointer.ll
  test/Isl/CodeGen/invariant_load_base_pointer_conditional.ll
  test/Isl/CodeGen/invariant_load_condition.ll
  test/Isl/CodeGen/invariant_load_loop_ub.ll
  test/Isl/CodeGen/invariant_load_ptr_ptr_noalias.ll
  test/Isl/CodeGen/non-affine-phi-node-expansion.ll
  test/Isl/CodeGen/simple_vec_call.ll
  test/Isl/CodeGen/simple_vec_call_2.ll
  test/Isl/CodeGen/simple_vec_cast.ll
  test/Isl/CodeGen/simple_vec_const.ll
  test/Isl/CodeGen/simple_vec_ptr_ptr_ty.ll
  test/ScopDetectionDiagnostics/ReportVariantBasePtr-01.ll
  test/ScopInfo/invariant_load.ll
  test/ScopInfo/invariant_load_base_pointer.ll
  test/ScopInfo/invariant_load_base_pointer_conditional.ll
  test/ScopInfo/invariant_load_condition.ll
  test/ScopInfo/invariant_load_loop_ub.ll
  test/ScopInfo/invariant_load_ptr_ptr_noalias.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12264.32902.patch
Type: text/x-patch
Size: 47137 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150822/6b571eba/attachment.bin>


More information about the llvm-commits mailing list