[llvm] r180119 - Call the potentially costly isAnnotatedParallel() only once.
Pekka Jaaskelainen
pekka.jaaskelainen at tut.fi
Tue Apr 23 09:44:43 PDT 2013
Author: pjaaskel
Date: Tue Apr 23 11:44:43 2013
New Revision: 180119
URL: http://llvm.org/viewvc/llvm-project?rev=180119&view=rev
Log:
Call the potentially costly isAnnotatedParallel() only once.
Made the uniform write test's checks a bit stricter.
Modified:
llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/trunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
Modified: llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=180119&r1=180118&r2=180119&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp (original)
+++ llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp Tue Apr 23 11:44:43 2013
@@ -2556,6 +2556,8 @@ bool LoopVectorizationLegality::canVecto
PtrRtCheck.Pointers.clear();
PtrRtCheck.Need = false;
+ const bool IsAnnotatedParallel = TheLoop->isAnnotatedParallel();
+
// For each block.
for (Loop::block_iterator bb = TheLoop->block_begin(),
be = TheLoop->block_end(); bb != be; ++bb) {
@@ -2570,7 +2572,7 @@ bool LoopVectorizationLegality::canVecto
if (it->mayReadFromMemory()) {
LoadInst *Ld = dyn_cast<LoadInst>(it);
if (!Ld) return false;
- if (!Ld->isSimple() && !TheLoop->isAnnotatedParallel()) {
+ if (!Ld->isSimple() && !IsAnnotatedParallel) {
DEBUG(dbgs() << "LV: Found a non-simple load.\n");
return false;
}
@@ -2582,7 +2584,7 @@ bool LoopVectorizationLegality::canVecto
if (it->mayWriteToMemory()) {
StoreInst *St = dyn_cast<StoreInst>(it);
if (!St) return false;
- if (!St->isSimple() && !TheLoop->isAnnotatedParallel()) {
+ if (!St->isSimple() && !IsAnnotatedParallel) {
DEBUG(dbgs() << "LV: Found a non-simple store.\n");
return false;
}
@@ -2629,7 +2631,7 @@ bool LoopVectorizationLegality::canVecto
ReadWrites.insert(std::make_pair(Ptr, ST));
}
- if (TheLoop->isAnnotatedParallel()) {
+ if (IsAnnotatedParallel) {
DEBUG(dbgs()
<< "LV: A loop annotated parallel, ignore memory dependency "
<< "checks.\n");
Modified: llvm/trunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll?rev=180119&r1=180118&r2=180119&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll (original)
+++ llvm/trunk/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll Tue Apr 23 11:44:43 2013
@@ -4,7 +4,8 @@ target datalayout = "e-p:64:64:64-i1:8:8
target triple = "x86_64-unknown-linux-gnu"
;CHECK: @foo
-;CHECK-NOT: <4 x
+;CHECK-NOT: <4 x i32>
+;CHECK: ret void
; Function Attrs: nounwind uwtable
define void @foo(i32* nocapture %a, i32* nocapture %b, i32 %k, i32 %m) #0 {
More information about the llvm-commits
mailing list