[llvm-commits] CVS: llvm/lib/Transforms/Utils/CodeExtractor.cpp InlineFunction.cpp LowerInvoke.cpp SimplifyCFG.cpp

Chris Lattner sabre at nondot.org
Mon Feb 12 18:11:21 PST 2007



Changes in directory llvm/lib/Transforms/Utils:

CodeExtractor.cpp updated: 1.49 -> 1.50
InlineFunction.cpp updated: 1.52 -> 1.53
LowerInvoke.cpp updated: 1.53 -> 1.54
SimplifyCFG.cpp updated: 1.116 -> 1.117
---
Log message:

Eliminate use of ctors that take vectors.


---
Diffs of the changes:  (+23 -19)

 CodeExtractor.cpp  |    2 +-
 InlineFunction.cpp |    4 +++-
 LowerInvoke.cpp    |   24 ++++++++++++------------
 SimplifyCFG.cpp    |   12 +++++++-----
 4 files changed, 23 insertions(+), 19 deletions(-)


Index: llvm/lib/Transforms/Utils/CodeExtractor.cpp
diff -u llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.49 llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.50
--- llvm/lib/Transforms/Utils/CodeExtractor.cpp:1.49	Mon Feb  5 17:32:05 2007
+++ llvm/lib/Transforms/Utils/CodeExtractor.cpp	Mon Feb 12 20:10:56 2007
@@ -403,7 +403,7 @@
   }
 
   // Emit the call to the function
-  CallInst *call = new CallInst(newFunction, params,
+  CallInst *call = new CallInst(newFunction, &params[0], params.size(),
                                 NumExitBlocks > 1 ? "targetBlock" : "");
   codeReplacer->getInstList().push_back(call);
 


Index: llvm/lib/Transforms/Utils/InlineFunction.cpp
diff -u llvm/lib/Transforms/Utils/InlineFunction.cpp:1.52 llvm/lib/Transforms/Utils/InlineFunction.cpp:1.53
--- llvm/lib/Transforms/Utils/InlineFunction.cpp:1.52	Fri Feb  2 18:08:31 2007
+++ llvm/lib/Transforms/Utils/InlineFunction.cpp	Mon Feb 12 20:10:56 2007
@@ -19,6 +19,7 @@
 #include "llvm/Instructions.h"
 #include "llvm/Intrinsics.h"
 #include "llvm/Analysis/CallGraph.h"
+#include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/CallSite.h"
 using namespace llvm;
 
@@ -80,9 +81,10 @@
           
           // Next, create the new invoke instruction, inserting it at the end
           // of the old basic block.
+          SmallVector<Value*, 8> InvokeArgs(CI->op_begin()+1, CI->op_end());
           InvokeInst *II =
             new InvokeInst(CI->getCalledValue(), Split, InvokeDest,
-                           std::vector<Value*>(CI->op_begin()+1, CI->op_end()),
+                           &InvokeArgs[0], InvokeArgs.size(),
                            CI->getName(), BB->getTerminator());
           II->setCallingConv(CI->getCallingConv());
           


Index: llvm/lib/Transforms/Utils/LowerInvoke.cpp
diff -u llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.53 llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.54
--- llvm/lib/Transforms/Utils/LowerInvoke.cpp:1.53	Mon Feb 12 16:56:41 2007
+++ llvm/lib/Transforms/Utils/LowerInvoke.cpp	Mon Feb 12 20:10:56 2007
@@ -189,21 +189,21 @@
     createAbortMessage(IB->getParent()->getParent()->getParent());
 
   // These are the arguments we WANT...
-  std::vector<Value*> Args;
-  Args.push_back(ConstantInt::get(Type::Int32Ty, 2));
-  Args.push_back(AbortMessage);
-  Args.push_back(ConstantInt::get(Type::Int32Ty, AbortMessageLength));
-  (new CallInst(WriteFn, Args, "", IB))->setTailCall();
+  Value* Args[3];
+  Args[0] = ConstantInt::get(Type::Int32Ty, 2);
+  Args[1] = AbortMessage;
+  Args[2] = ConstantInt::get(Type::Int32Ty, AbortMessageLength);
+  (new CallInst(WriteFn, Args, 3, "", IB))->setTailCall();
 }
 
 bool LowerInvoke::insertCheapEHSupport(Function &F) {
   bool Changed = false;
   for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB)
     if (InvokeInst *II = dyn_cast<InvokeInst>(BB->getTerminator())) {
+      std::vector<Value*> CallArgs(II->op_begin()+3, II->op_end());
       // Insert a normal call instruction...
       CallInst *NewCall = new CallInst(II->getCalledValue(),
-                                       std::vector<Value*>(II->op_begin()+3,
-                                                       II->op_end()), "", II);
+                                       &CallArgs[0], CallArgs.size(), "", II);
       NewCall->takeName(II);
       NewCall->setCallingConv(II->getCallingConv());
       II->replaceAllUsesWith(NewCall);
@@ -223,7 +223,7 @@
       writeAbortMessage(UI);
 
       // Insert a call to abort()
-      (new CallInst(AbortFn, std::vector<Value*>(), "", UI))->setTailCall();
+      (new CallInst(AbortFn, "", UI))->setTailCall();
 
       // Insert a return instruction.  This really should be a "barrier", as it
       // is unreachable.
@@ -258,9 +258,9 @@
   CatchSwitch->addCase(InvokeNoC, II->getUnwindDest());
   
   // Insert a normal call instruction.
+  std::vector<Value*> CallArgs(II->op_begin()+3, II->op_end());
   CallInst *NewCall = new CallInst(II->getCalledValue(),
-                                   std::vector<Value*>(II->op_begin()+3,
-                                                       II->op_end()), "",
+                                   &CallArgs[0], CallArgs.size(), "",
                                    II);
   NewCall->takeName(II);
   NewCall->setCallingConv(II->getCallingConv());
@@ -533,7 +533,7 @@
   Idx.push_back(ConstantInt::get(Type::Int32Ty, 0));
   Idx[0] = new GetElementPtrInst(BufPtr, &Idx[0], 2, "JmpBuf", UnwindBlock);
   Idx[1] = ConstantInt::get(Type::Int32Ty, 1);
-  new CallInst(LongJmpFn, Idx, "", UnwindBlock);
+  new CallInst(LongJmpFn, &Idx[0], Idx.size(), "", UnwindBlock);
   new UnreachableInst(UnwindBlock);
   
   // Set up the term block ("throw without a catch").
@@ -543,7 +543,7 @@
   writeAbortMessage(TermBlock->getTerminator());
   
   // Insert a call to abort()
-  (new CallInst(AbortFn, std::vector<Value*>(), "",
+  (new CallInst(AbortFn, "",
                 TermBlock->getTerminator()))->setTailCall();
     
   


Index: llvm/lib/Transforms/Utils/SimplifyCFG.cpp
diff -u llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.116 llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.117
--- llvm/lib/Transforms/Utils/SimplifyCFG.cpp:1.116	Sat Feb 10 19:37:51 2007
+++ llvm/lib/Transforms/Utils/SimplifyCFG.cpp	Mon Feb 12 20:10:56 2007
@@ -21,6 +21,7 @@
 #include "llvm/Support/Debug.h"
 #include "llvm/Analysis/ConstantFolding.h"
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"
+#include "llvm/ADT/SmallVector.h"
 #include <algorithm>
 #include <functional>
 #include <set>
@@ -1369,9 +1370,9 @@
           Pred->getInstList().remove(II);   // Take out of symbol table
 
           // Insert the call now...
-          std::vector<Value*> Args(II->op_begin()+3, II->op_end());
-          CallInst *CI = new CallInst(II->getCalledValue(), Args,
-                                      II->getName(), BI);
+          SmallVector<Value*,8> Args(II->op_begin()+3, II->op_end());
+          CallInst *CI = new CallInst(II->getCalledValue(),
+                                      &Args[0], Args.size(), II->getName(), BI);
           CI->setCallingConv(II->getCallingConv());
           // If the invoke produced a value, the Call now does instead
           II->replaceAllUsesWith(CI);
@@ -1741,8 +1742,9 @@
             II->removeFromParent();   // Take out of symbol table
 
             // Insert the call now...
-            std::vector<Value*> Args(II->op_begin()+3, II->op_end());
-            CallInst *CI = new CallInst(II->getCalledValue(), Args,
+            SmallVector<Value*, 8> Args(II->op_begin()+3, II->op_end());
+            CallInst *CI = new CallInst(II->getCalledValue(),
+                                        &Args[0], Args.size(),
                                         II->getName(), BI);
             CI->setCallingConv(II->getCallingConv());
             // If the invoke produced a value, the Call does now instead.






More information about the llvm-commits mailing list