[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Chris Lattner
sabre at nondot.org
Fri Feb 2 17:12:52 PST 2007
Changes in directory llvm/lib/CodeGen/SelectionDAG:
LegalizeDAG.cpp updated: 1.466 -> 1.467
---
Log message:
Switch ComputeTopDownOrdering over to using a densemap. This speeds up
isel as a whole by 3.3%.
---
Diffs of the changes: (+3 -2)
LegalizeDAG.cpp | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.466 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.467
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.466 Fri Feb 2 18:43:46 2007
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Fri Feb 2 19:12:36 2007
@@ -25,6 +25,7 @@
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
+#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include <map>
using namespace llvm;
@@ -290,7 +291,7 @@
/// ComputeTopDownOrdering - Add the specified node to the Order list if it has
/// not been visited yet and if all of its operands have already been visited.
static void ComputeTopDownOrdering(SDNode *N, std::vector<SDNode*> &Order,
- std::map<SDNode*, unsigned> &Visited) {
+ DenseMap<SDNode*, unsigned> &Visited) {
if (++Visited[N] != N->getNumOperands())
return; // Haven't visited all operands yet
@@ -318,7 +319,7 @@
// practice however, this causes us to run out of stack space on large basic
// blocks. To avoid this problem, compute an ordering of the nodes where each
// node is only legalized after all of its operands are legalized.
- std::map<SDNode*, unsigned> Visited;
+ DenseMap<SDNode*, unsigned> Visited;
std::vector<SDNode*> Order;
// Compute ordering from all of the leaves in the graphs, those (like the
More information about the llvm-commits
mailing list