[llvm-commits] CVS: llvm/include/llvm/CodeGen/SelectionDAG.h SelectionDAGCSEMap.h SelectionDAGNodes.h
Chris Lattner
lattner at cs.uiuc.edu
Mon Aug 14 15:19:41 PDT 2006
Changes in directory llvm/include/llvm/CodeGen:
SelectionDAG.h updated: 1.117 -> 1.118
SelectionDAGCSEMap.h updated: 1.5 -> 1.6
SelectionDAGNodes.h updated: 1.139 -> 1.140
---
Log message:
Add code to resize the CSEMap hash table. This doesn't speedup codegen of
kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :)
---
Diffs of the changes: (+9 -3)
SelectionDAG.h | 9 ++++++---
SelectionDAGCSEMap.h | 2 ++
SelectionDAGNodes.h | 1 +
3 files changed, 9 insertions(+), 3 deletions(-)
Index: llvm/include/llvm/CodeGen/SelectionDAG.h
diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.117 llvm/include/llvm/CodeGen/SelectionDAG.h:1.118
--- llvm/include/llvm/CodeGen/SelectionDAG.h:1.117 Fri Aug 11 16:55:30 2006
+++ llvm/include/llvm/CodeGen/SelectionDAG.h Mon Aug 14 17:19:25 2006
@@ -46,12 +46,16 @@
MachineFunction &MF;
MachineDebugInfo *DI;
- // Root - The root of the entire DAG. EntryNode - The starting token.
+ /// Root - The root of the entire DAG. EntryNode - The starting token.
SDOperand Root, EntryNode;
- // AllNodes - A linked list of nodes in the current DAG.
+ /// AllNodes - A linked list of nodes in the current DAG.
ilist<SDNode> AllNodes;
+ /// CSEMap - This structure is used to memoize nodes, automatically performing
+ /// CSE with existing nodes with a duplicate is requested.
+ SelectionDAGCSEMap CSEMap;
+
public:
SelectionDAG(TargetLowering &tli, MachineFunction &mf, MachineDebugInfo *di)
: TLI(tli), MF(mf), DI(di) {
@@ -464,7 +468,6 @@
std::map<std::string, SDNode*> ExternalSymbols;
std::map<std::string, SDNode*> TargetExternalSymbols;
std::map<std::string, StringSDNode*> StringNodes;
- SelectionDAGCSEMap CSEMap;
};
template <> struct GraphTraits<SelectionDAG*> : public GraphTraits<SDNode*> {
Index: llvm/include/llvm/CodeGen/SelectionDAGCSEMap.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGCSEMap.h:1.5 llvm/include/llvm/CodeGen/SelectionDAGCSEMap.h:1.6
--- llvm/include/llvm/CodeGen/SelectionDAGCSEMap.h:1.5 Fri Aug 11 20:07:51 2006
+++ llvm/include/llvm/CodeGen/SelectionDAGCSEMap.h Mon Aug 14 17:19:25 2006
@@ -117,8 +117,10 @@
private:
SDNode *GetNextPtr(void *NextInBucketPtr);
+ SDNode *GetNextPtr(void *NextInBucketPtr, void **Buckets, unsigned NumBuck);
void **GetBucketPtr(void *NextInBucketPtr);
void **GetBucketFor(const NodeID &ID) const;
+ void GrowHashTable();
};
} // end namespace llvm
Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.139 llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.140
--- llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.139 Mon Aug 7 20:09:31 2006
+++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h Mon Aug 14 17:19:25 2006
@@ -719,6 +719,7 @@
public:
virtual ~SDNode() {
assert(NumOperands == 0 && "Operand list not cleared before deletion");
+ assert(NextInBucket == 0 && "Still in CSEMap?");
NodeType = ISD::DELETED_NODE;
}
More information about the llvm-commits
mailing list