Changes in directory llvm/include/llvm/CodeGen:
SelectionDAG.h updated: 1.96 -> 1.97 --- Log message: Added SelectionDAG::InsertISelMapEntry(). This is used to workaround the gcc problem where it inline the map insertion call too aggressively. Before this change it was producing a frame size of 24k for Select_store(), now it's down to 10k (by calling this method rather than calling the map insertion operator). --- Diffs of the changes: (+8 -2) SelectionDAG.h | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) Index: llvm/include/llvm/CodeGen/SelectionDAG.h diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.96 llvm/include/llvm/CodeGen/SelectionDAG.h:1.97 --- llvm/include/llvm/CodeGen/SelectionDAG.h:1.96 Thu Feb 9 01:15:23 2006 +++ llvm/include/llvm/CodeGen/SelectionDAG.h Thu Feb 9 16:11:03 2006 @@ -395,14 +395,20 @@ std::vector<SDNode*> *Deleted = 0); void ReplaceAllUsesWith(SDNode *From, const std::vector<SDOperand> &To, std::vector<SDNode*> *Deleted = 0); - - + /// DeleteNode - Remove the specified node from the system. This node must /// have no referrers. void DeleteNode(SDNode *N); void dump() const; + /// InsertISelMapEntry - A helper function to insert a key / element pair + /// into a SDOperand to SDOperand map. This is added to avoid the map + /// insertion operator from being inlined. + static void InsertISelMapEntry(std::map<SDOperand, SDOperand> &Map, + SDNode *Key, unsigned KeyResNo, + SDNode *Element, unsigned ElementResNo); + private: void RemoveNodeFromCSEMaps(SDNode *N); SDNode *AddNonLeafNodeToCSEMaps(SDNode *N); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits