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; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits