[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

Evan Cheng evan.cheng at apple.com
Thu Feb 9 14:11:15 PST 2006



Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAG.cpp updated: 1.255 -> 1.256
---
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:  (+9 -0)

 SelectionDAG.cpp |    9 +++++++++
 1 files changed, 9 insertions(+)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.255 llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.256
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.255	Thu Feb  9 01:15:23 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp	Thu Feb  9 16:11:03 2006
@@ -2748,3 +2748,12 @@
   std::cerr << "\n\n";
 }
 
+/// 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.
+void SelectionDAG::InsertISelMapEntry(std::map<SDOperand, SDOperand> &Map,
+                                      SDNode *Key, unsigned KeyResNo,
+                                      SDNode *Element, unsigned ElementResNo) {
+  Map.insert(std::make_pair(SDOperand(Key, KeyResNo),
+                            SDOperand(Element, ElementResNo)));
+}






More information about the llvm-commits mailing list