[llvm-commits] [llvm] r49595 - in /llvm/branches/ggreif/use-diet: include/llvm/Instructions.h lib/VMCore/Instructions.cpp

Gabor Greif ggreif at gmail.com
Sat Apr 12 15:34:30 PDT 2008


Author: ggreif
Date: Sat Apr 12 17:34:30 2008
New Revision: 49595

URL: http://llvm.org/viewvc/llvm-project?rev=49595&view=rev
Log:
switch over SwitchInst

Modified:
    llvm/branches/ggreif/use-diet/include/llvm/Instructions.h
    llvm/branches/ggreif/use-diet/lib/VMCore/Instructions.cpp

Modified: llvm/branches/ggreif/use-diet/include/llvm/Instructions.h
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/ggreif/use-diet/include/llvm/Instructions.h?rev=49595&r1=49594&r2=49595&view=diff

==============================================================================
--- llvm/branches/ggreif/use-diet/include/llvm/Instructions.h (original)
+++ llvm/branches/ggreif/use-diet/include/llvm/Instructions.h Sat Apr 12 17:34:30 2008
@@ -1788,14 +1788,17 @@
 public:
   static SwitchInst *Create(Value *Value, BasicBlock *Default, unsigned NumCases,
                             Instruction *InsertBefore = 0) {
-    return new(NumCases/*FIXME*/) SwitchInst(Value, Default, NumCases, InsertBefore);
+    return new(NumCases * 2) SwitchInst(Value, Default, NumCases, InsertBefore);
   }
   static SwitchInst *Create(Value *Value, BasicBlock *Default, unsigned NumCases,
                             BasicBlock *InsertAtEnd) {
-    return new(NumCases/*FIXME*/) SwitchInst(Value, Default, NumCases, InsertAtEnd);
+    return new(NumCases * 2) SwitchInst(Value, Default, NumCases, InsertAtEnd);
   }
   ~SwitchInst();
 
+  /// Provide fast operand accessors
+  DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
+
   // Accessor Methods for Switch stmt
   Value *getCondition() const { return getOperand(0); }
   void setCondition(Value *V) { setOperand(0, V); }
@@ -1892,6 +1895,13 @@
   virtual void setSuccessorV(unsigned idx, BasicBlock *B);
 };
 
+template <>
+struct OperandTraits<SwitchInst> : HungoffOperandTraits<2> {
+};
+
+DEFINE_TRANSPARENT_OPERAND_ACCESSORS(SwitchInst, Value)  
+
+
 //===----------------------------------------------------------------------===//
 //                               InvokeInst Class
 //===----------------------------------------------------------------------===//

Modified: llvm/branches/ggreif/use-diet/lib/VMCore/Instructions.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/ggreif/use-diet/lib/VMCore/Instructions.cpp?rev=49595&r1=49594&r2=49595&view=diff

==============================================================================
--- llvm/branches/ggreif/use-diet/lib/VMCore/Instructions.cpp (original)
+++ llvm/branches/ggreif/use-diet/lib/VMCore/Instructions.cpp Sat Apr 12 17:34:30 2008
@@ -184,7 +184,6 @@
   Use *NewOps = allocHangoffUses(NumOps);
   for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
       NewOps[i].init(OldOps[i], this);
-      //      OldOps[i].set(0);
   }
   if (OldOps) dropHungoffUses(OldOps);
   OperandList = NewOps;
@@ -2651,7 +2650,7 @@
 }
 
 SwitchInst::~SwitchInst() {
-//  delete [] OperandList;
+  dropHungoffUses(OperandList);
 }
 
 
@@ -2719,9 +2718,8 @@
   Use *OldOps = OperandList;
   for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
       NewOps[i].init(OldOps[i], this);
-      OldOps[i].set(0);
   }
-//  delete [] OldOps;
+  if (OldOps) dropHungoffUses(OldOps);
   OperandList = NewOps;
 }
 





More information about the llvm-commits mailing list