summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-02-04 01:17:38 +0000
committerChris Lattner <sabre@nondot.org>2007-02-04 01:17:38 +0000
commit40030bfa75ae6d72702bc60e964ae2fce8c0f3ed (patch)
tree36134c6252a3e6c876303242e16d0b4b5214e21d /lib
parent414e37f9a3c056b56a4f7a0febc9fc4c02e48f8d (diff)
downloadllvm-40030bfa75ae6d72702bc60e964ae2fce8c0f3ed.tar.gz
llvm-40030bfa75ae6d72702bc60e964ae2fce8c0f3ed.tar.bz2
llvm-40030bfa75ae6d72702bc60e964ae2fce8c0f3ed.tar.xz
Switch promoted/expanded ops over to using a DenseMap. Vector related maps
aren't worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33860 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/CodeGen/SelectionDAG/LegalizeDAG.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index a411d108f2..2479abb959 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -99,12 +99,12 @@ class VISIBILITY_HIDDEN SelectionDAGLegalize {
/// PromotedNodes - For nodes that are below legal width, and that have more
/// than one use, this map indicates what promoted value to use. This allows
/// us to avoid promoting the same thing more than once.
- std::map<SDOperand, SDOperand> PromotedNodes;
+ DenseMap<SDOperand, SDOperand> PromotedNodes;
/// ExpandedNodes - For nodes that need to be expanded this map indicates
/// which which operands are the expanded version of the input. This allows
/// us to avoid expanding the same node more than once.
- std::map<SDOperand, std::pair<SDOperand, SDOperand> > ExpandedNodes;
+ DenseMap<SDOperand, std::pair<SDOperand, SDOperand> > ExpandedNodes;
/// SplitNodes - For vector nodes that need to be split, this map indicates
/// which which operands are the split version of the input. This allows us
@@ -123,7 +123,7 @@ class VISIBILITY_HIDDEN SelectionDAGLegalize {
LegalizedNodes.insert(std::make_pair(To, To));
}
void AddPromotedOperand(SDOperand From, SDOperand To) {
- bool isNew = PromotedNodes.insert(std::make_pair(From, To)).second;
+ bool isNew = PromotedNodes.insert(std::make_pair(From, To));
assert(isNew && "Got into the map somehow?");
// If someone requests legalization of the new node, return itself.
LegalizedNodes.insert(std::make_pair(To, To));
@@ -3103,7 +3103,7 @@ SDOperand SelectionDAGLegalize::PromoteOp(SDOperand Op) {
SDOperand Result;
SDNode *Node = Op.Val;
- std::map<SDOperand, SDOperand>::iterator I = PromotedNodes.find(Op);
+ DenseMap<SDOperand, SDOperand>::iterator I = PromotedNodes.find(Op);
if (I != PromotedNodes.end()) return I->second;
switch (Node->getOpcode()) {
@@ -4584,7 +4584,7 @@ void SelectionDAGLegalize::ExpandOp(SDOperand Op, SDOperand &Lo, SDOperand &Hi){
"Cannot expand to FP value or to larger int value!");
// See if we already expanded it.
- std::map<SDOperand, std::pair<SDOperand, SDOperand> >::iterator I
+ DenseMap<SDOperand, std::pair<SDOperand, SDOperand> >::iterator I
= ExpandedNodes.find(Op);
if (I != ExpandedNodes.end()) {
Lo = I->second.first;
@@ -5268,8 +5268,7 @@ void SelectionDAGLegalize::ExpandOp(SDOperand Op, SDOperand &Lo, SDOperand &Hi){
}
// Remember in a map if the values will be reused later.
- bool isNew =
- ExpandedNodes.insert(std::make_pair(Op, std::make_pair(Lo, Hi))).second;
+ bool isNew = ExpandedNodes.insert(std::make_pair(Op, std::make_pair(Lo, Hi)));
assert(isNew && "Value already expanded?!?");
}
@@ -5396,7 +5395,7 @@ void SelectionDAGLegalize::SplitVectorOp(SDOperand Op, SDOperand &Lo,
}
// Remember in a map if the values will be reused later.
- bool isNew =
+ bool isNew =
SplitNodes.insert(std::make_pair(Op, std::make_pair(Lo, Hi))).second;
assert(isNew && "Value already expanded?!?");
}