From: Chris Lattner Date: Sun, 4 Feb 2007 00:27:56 +0000 (+0000) Subject: Eliminate some malloc traffic from LegalizeAllNodesNotLeadingTo, speeding X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=00755df36c1448ac4728a74d907aa09e3d8b2d49;p=oota-llvm.git Eliminate some malloc traffic from LegalizeAllNodesNotLeadingTo, speeding up isel on kimwitu by 0.7%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33853 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 22edbf320e7..e87dfa615c5 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -27,6 +27,7 @@ #include "llvm/Support/Compiler.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/SmallPtrSet.h" #include using namespace llvm; @@ -182,7 +183,7 @@ private: SDNode *isShuffleLegal(MVT::ValueType VT, SDOperand Mask) const; bool LegalizeAllNodesNotLeadingTo(SDNode *N, SDNode *Dest, - std::set &NodesLeadingTo); + SmallPtrSet &NodesLeadingTo); void LegalizeSetCCOperands(SDOperand &LHS, SDOperand &RHS, SDOperand &CC); @@ -416,7 +417,7 @@ static SDNode *FindCallStartFromCallEnd(SDNode *Node) { /// NodesLeadingTo. This avoids retraversing them exponential number of times. /// bool SelectionDAGLegalize::LegalizeAllNodesNotLeadingTo(SDNode *N, SDNode *Dest, - std::set &NodesLeadingTo) { + SmallPtrSet &NodesLeadingTo) { if (N == Dest) return true; // N certainly leads to Dest :) // If we've already processed this node and it does lead to Dest, there is no @@ -1119,7 +1120,7 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) { // Recursively Legalize all of the inputs of the call end that do not lead // to this call start. This ensures that any libcalls that need be inserted // are inserted *before* the CALLSEQ_START. - {std::set NodesLeadingTo; + {SmallPtrSet NodesLeadingTo; for (unsigned i = 0, e = CallEnd->getNumOperands(); i != e; ++i) LegalizeAllNodesNotLeadingTo(CallEnd->getOperand(i).Val, Node, NodesLeadingTo); @@ -2072,7 +2073,7 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) { // Allow SETCC to not be supported for all legal data types // Mostly this targets FP MVT::ValueType NewInTy = Node->getOperand(0).getValueType(); - MVT::ValueType OldVT = NewInTy; + MVT::ValueType OldVT = NewInTy; OldVT = OldVT; // Scan for the appropriate larger type to use. while (1) {