diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-06-29 23:57:05 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-06-29 23:57:05 +0000 |
commit | 322812e603705e1c2037313633e72f689524b163 (patch) | |
tree | 7d13d6695fbade190d0cc907b4b48dd5dbce83b5 /include/llvm/CodeGen/SelectionDAG.h | |
parent | 7dabf399b95aad4056985eac346451e134de9ebe (diff) | |
download | external_llvm-322812e603705e1c2037313633e72f689524b163.tar.gz external_llvm-322812e603705e1c2037313633e72f689524b163.tar.bz2 external_llvm-322812e603705e1c2037313633e72f689524b163.zip |
Ugly hack! Add helper functions InsertInFlightSetEntry and
RemoveInFlightSetEntry. They are used in place of direct set operators to
reduce instruction selection function stack size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28987 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/SelectionDAG.h')
-rw-r--r-- | include/llvm/CodeGen/SelectionDAG.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h index f05b5b96bd..473021afad 100644 --- a/include/llvm/CodeGen/SelectionDAG.h +++ b/include/llvm/CodeGen/SelectionDAG.h @@ -18,8 +18,9 @@ #include "llvm/CodeGen/SelectionDAGNodes.h" #include "llvm/ADT/ilist" -#include <map> #include <list> +#include <map> +#include <set> #include <string> namespace llvm { @@ -429,6 +430,16 @@ public: static void InsertISelMapEntry(std::map<SDOperand, SDOperand> &Map, SDNode *Key, unsigned KeyResNo, SDNode *Element, unsigned ElementResNo); + + /// InsertInFlightSetEntry - A helper function to insert a SDNode* to a + /// SDNode* set. This is added to avoid the set insertion operator from being + /// inlined. + static void InsertInFlightSetEntry(std::set<SDNode*> &Set, SDNode *N); + + /// RemoveInFlightSetEntry - A helper function to remove a SDNode* from a + /// SDNode* set. This is added to avoid the set removal operator from being + /// inlined. + static void RemoveInFlightSetEntry(std::set<SDNode*> &Set, SDNode *N); private: void RemoveNodeFromCSEMaps(SDNode *N); |