aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/SelectionDAG.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/CodeGen/SelectionDAG.h')
-rw-r--r--include/llvm/CodeGen/SelectionDAG.h29
1 files changed, 10 insertions, 19 deletions
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h
index f70403c..0b03274 100644
--- a/include/llvm/CodeGen/SelectionDAG.h
+++ b/include/llvm/CodeGen/SelectionDAG.h
@@ -16,6 +16,7 @@
#define LLVM_CODEGEN_SELECTIONDAG_H
#include "llvm/CodeGen/SelectionDAGNodes.h"
+#include "llvm/CodeGen/SelectionDAGCSEMap.h"
#include "llvm/ADT/ilist"
#include <list>
@@ -441,13 +442,16 @@ public:
private:
void RemoveNodeFromCSEMaps(SDNode *N);
SDNode *AddNonLeafNodeToCSEMaps(SDNode *N);
- SDNode **FindModifiedNodeSlot(SDNode *N, SDOperand Op);
- SDNode **FindModifiedNodeSlot(SDNode *N, SDOperand Op1, SDOperand Op2);
- SDNode **FindModifiedNodeSlot(SDNode *N, const std::vector<SDOperand> &Ops);
+ SDNode *FindModifiedNodeSlot(SDNode *N, SDOperand Op, void *&InsertPos);
+ SDNode *FindModifiedNodeSlot(SDNode *N, SDOperand Op1, SDOperand Op2,
+ void *&InsertPos);
+ SDNode *FindModifiedNodeSlot(SDNode *N, const std::vector<SDOperand> &Ops,
+ void *&InsertPos);
void DeleteNodeNotInCSEMaps(SDNode *N);
- void setNodeValueTypes(SDNode *N, std::vector<MVT::ValueType> &RetVals);
- void setNodeValueTypes(SDNode *N, MVT::ValueType VT1, MVT::ValueType VT2);
+ MVT::ValueType *getNodeValueTypes(MVT::ValueType VT1);
+ MVT::ValueType *getNodeValueTypes(MVT::ValueType VT1, MVT::ValueType VT2);
+ MVT::ValueType *getNodeValueTypes(std::vector<MVT::ValueType> &RetVals);
/// SimplifySetCC - Try to simplify a setcc built with the specified operands
@@ -460,17 +464,10 @@ private:
// Maps to auto-CSE operations.
std::map<std::pair<unsigned, MVT::ValueType>, SDNode *> NullaryOps;
- std::map<std::pair<unsigned, std::pair<SDOperand, MVT::ValueType> >,
- SDNode *> UnaryOps;
- std::map<std::pair<unsigned, std::pair<SDOperand, SDOperand> >,
- SDNode *> BinaryOps;
std::map<std::pair<unsigned, MVT::ValueType>, RegisterSDNode*> RegNodes;
std::vector<CondCodeSDNode*> CondCodeNodes;
- std::map<std::pair<SDOperand, std::pair<SDOperand, MVT::ValueType> >,
- SDNode *> Loads;
-
std::map<std::pair<const GlobalValue*, int>, SDNode*> GlobalValues;
std::map<std::pair<const GlobalValue*, int>, SDNode*> TargetGlobalValues;
std::map<std::pair<uint64_t, MVT::ValueType>, SDNode*> Constants;
@@ -488,13 +485,7 @@ private:
std::map<std::string, SDNode*> ExternalSymbols;
std::map<std::string, SDNode*> TargetExternalSymbols;
std::map<std::string, StringSDNode*> StringNodes;
- std::map<std::pair<unsigned,
- std::pair<MVT::ValueType, std::vector<SDOperand> > >,
- SDNode*> OneResultNodes;
- std::map<std::pair<unsigned,
- std::pair<std::vector<MVT::ValueType>,
- std::vector<SDOperand> > >,
- SDNode*> ArbitraryNodes;
+ SelectionDAGCSEMap CSEMap;
};
template <> struct GraphTraits<SelectionDAG*> : public GraphTraits<SDNode*> {