[llvm-commits] [llvm] r173467 - /llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp

Nadav Rotem nrotem at apple.com
Fri Jan 25 10:34:09 PST 2013


Author: nadav
Date: Fri Jan 25 12:34:09 2013
New Revision: 173467

URL: http://llvm.org/viewvc/llvm-project?rev=173467&view=rev
Log:
Refactor some code to use the IRBuilder.


Modified:
    llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp

Modified: llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=173467&r1=173466&r2=173467&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp (original)
+++ llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp Fri Jan 25 12:34:09 2013
@@ -941,29 +941,30 @@
     }
   }
 
+  IRBuilder<> ChkBuilder(Loc->getContext());
+  ChkBuilder.SetInsertPoint(Loc);
+
   for (unsigned i = 0; i < NumPointers; ++i) {
     for (unsigned j = i+1; j < NumPointers; ++j) {
       Instruction::CastOps Op = Instruction::BitCast;
-      Value *Start0 = CastInst::Create(Op, Starts[i], PtrArithTy, "bc", Loc);
-      Value *Start1 = CastInst::Create(Op, Starts[j], PtrArithTy, "bc", Loc);
-      Value *End0 =   CastInst::Create(Op, Ends[i],   PtrArithTy, "bc", Loc);
-      Value *End1 =   CastInst::Create(Op, Ends[j],   PtrArithTy, "bc", Loc);
-
-      Value *Cmp0 = CmpInst::Create(Instruction::ICmp, CmpInst::ICMP_ULE,
-                                    Start0, End1, "bound0", Loc);
-      Value *Cmp1 = CmpInst::Create(Instruction::ICmp, CmpInst::ICMP_ULE,
-                                    Start1, End0, "bound1", Loc);
-      Instruction *IsConflict = BinaryOperator::Create(Instruction::And, Cmp0,
-                                                       Cmp1, "found.conflict",
-                                                       Loc);
-      if (MemoryRuntimeCheck)
-        MemoryRuntimeCheck = BinaryOperator::Create(Instruction::Or,
-                                                    MemoryRuntimeCheck,
-                                                    IsConflict,
-                                                    "conflict.rdx", Loc);
-      else
-        MemoryRuntimeCheck = IsConflict;
-
+      Value *Start0 = ChkBuilder.CreateCast(Op, Starts[i], PtrArithTy, "bc");
+      Value *Start1 = ChkBuilder.CreateCast(Op, Starts[j], PtrArithTy, "bc");
+      Value *End0 =   ChkBuilder.CreateCast(Op, Ends[i],   PtrArithTy, "bc");
+      Value *End1 =   ChkBuilder.CreateCast(Op, Ends[j],   PtrArithTy, "bc");
+
+      Value *Cmp0 = ChkBuilder.CreateICmp(CmpInst::ICMP_ULE,
+                                          Start0, End1, "bound0");
+      Value *Cmp1 = ChkBuilder.CreateICmp(CmpInst::ICMP_ULE,
+                                          Start1, End0, "bound1");
+      Value *IsConflict = ChkBuilder.CreateBinOp(Instruction::And, Cmp0, Cmp1,
+                                                 "found.conflict");
+      if (MemoryRuntimeCheck) {
+        Value *B = ChkBuilder.CreateBinOp(Instruction::Or, MemoryRuntimeCheck,
+                               IsConflict, "conflict.rdx");
+        MemoryRuntimeCheck = cast<Instruction>(B);
+      } else {
+        MemoryRuntimeCheck = cast<Instruction>(IsConflict);
+      }
     }
   }
 





More information about the llvm-commits mailing list