[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