[llvm-commits] [llvm] r49594 - in /llvm/branches/ggreif/use-diet: include/llvm/Instructions.h lib/VMCore/Instructions.cpp
Gabor Greif
ggreif at gmail.com
Sat Apr 12 15:16:15 PDT 2008
Author: ggreif
Date: Sat Apr 12 17:16:14 2008
New Revision: 49594
URL: http://llvm.org/viewvc/llvm-project?rev=49594&view=rev
Log:
switch over PHINode
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=49594&r1=49593&r2=49594&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:16:14 2008
@@ -1463,6 +1463,9 @@
virtual PHINode *clone() const;
+ /// Provide fast operand accessors
+ DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Value);
+
/// getNumIncomingValues - Return the number of incoming edges
///
unsigned getNumIncomingValues() const { return getNumOperands()/2; }
@@ -1556,6 +1559,13 @@
void resizeOperands(unsigned NumOperands);
};
+template <>
+struct OperandTraits<PHINode> : HungoffOperandTraits<2> {
+};
+
+DEFINE_TRANSPARENT_OPERAND_ACCESSORS(PHINode, Value)
+
+
//===----------------------------------------------------------------------===//
// ReturnInst 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=49594&r1=49593&r2=49594&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:16:14 2008
@@ -124,7 +124,7 @@
}
PHINode::~PHINode() {
-// delete [] OperandList;
+ dropHungoffUses(OperandList);
}
// removeIncomingValue - Remove an incoming value. This is useful if a
@@ -184,9 +184,9 @@
Use *NewOps = allocHangoffUses(NumOps);
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
NewOps[i].init(OldOps[i], this);
- OldOps[i].set(0);
+ // OldOps[i].set(0);
}
-// delete [] OldOps;
+ if (OldOps) dropHungoffUses(OldOps);
OperandList = NewOps;
}
More information about the llvm-commits
mailing list