[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