[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