aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-07-28 00:47:19 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-07-28 00:47:19 +0000
commit2641cad180e94c0d26630d4ed455352f19be3d3e (patch)
tree7b3b3f62acb44ca113a81c154c457afe8e75fb32
parentf26f5dde14dddb7540d4d8024ecdd7f5a8390b39 (diff)
Remove InFlightSet hack. No longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29373 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/CodeGen/SelectionDAG.h10
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAG.cpp14
-rw-r--r--lib/Target/ARM/ARMISelDAGToDAG.cpp1
-rw-r--r--lib/Target/Alpha/AlphaISelDAGToDAG.cpp1
-rw-r--r--lib/Target/IA64/IA64ISelDAGToDAG.cpp1
-rw-r--r--lib/Target/PowerPC/PPCISelDAGToDAG.cpp1
-rw-r--r--lib/Target/Sparc/SparcISelDAGToDAG.cpp1
-rw-r--r--utils/TableGen/DAGISelEmitter.cpp46
8 files changed, 0 insertions, 75 deletions
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h
index 4de4161103..91d2800cc4 100644
--- a/include/llvm/CodeGen/SelectionDAG.h
+++ b/include/llvm/CodeGen/SelectionDAG.h
@@ -435,16 +435,6 @@ public:
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);
SDNode *AddNonLeafNodeToCSEMaps(SDNode *N);
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 1a5a09b1dc..8c40a72bec 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -3115,17 +3115,3 @@ void SelectionDAG::InsertISelMapEntry(std::map<SDOperand, SDOperand> &Map,
Map.insert(std::make_pair(SDOperand(Key, KeyResNo),
SDOperand(Element, 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.
-void SelectionDAG::InsertInFlightSetEntry(std::set<SDNode*> &Set, SDNode *N) {
- Set.insert(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.
-void SelectionDAG::RemoveInFlightSetEntry(std::set<SDNode*> &Set, SDNode *N) {
- Set.erase(N);
-}
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp
index 8ca7c0b40c..59704cb414 100644
--- a/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -282,7 +282,6 @@ void ARMDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
DEBUG(BB->dump());
DAG.setRoot(SelectRoot(DAG.getRoot()));
- assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
CodeGenMap.clear();
HandleMap.clear();
ReplaceMap.clear();
diff --git a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
index 32d5222a02..78a78143c1 100644
--- a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
+++ b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
@@ -172,7 +172,6 @@ void AlphaDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
// Select target instructions for the DAG.
DAG.setRoot(SelectRoot(DAG.getRoot()));
- assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
CodeGenMap.clear();
HandleMap.clear();
ReplaceMap.clear();
diff --git a/lib/Target/IA64/IA64ISelDAGToDAG.cpp b/lib/Target/IA64/IA64ISelDAGToDAG.cpp
index 3fb7b2a3b8..fe5a7bb0ab 100644
--- a/lib/Target/IA64/IA64ISelDAGToDAG.cpp
+++ b/lib/Target/IA64/IA64ISelDAGToDAG.cpp
@@ -142,7 +142,6 @@ void IA64DAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
// Select target instructions for the DAG.
DAG.setRoot(SelectRoot(DAG.getRoot()));
- assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
CodeGenMap.clear();
HandleMap.clear();
ReplaceMap.clear();
diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
index 99d9788149..937092ab02 100644
--- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
+++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
@@ -215,7 +215,6 @@ void PPCDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
// Select target instructions for the DAG.
DAG.setRoot(SelectRoot(DAG.getRoot()));
- assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
CodeGenMap.clear();
HandleMap.clear();
ReplaceMap.clear();
diff --git a/lib/Target/Sparc/SparcISelDAGToDAG.cpp b/lib/Target/Sparc/SparcISelDAGToDAG.cpp
index 4be7fa582d..1004109524 100644
--- a/lib/Target/Sparc/SparcISelDAGToDAG.cpp
+++ b/lib/Target/Sparc/SparcISelDAGToDAG.cpp
@@ -1001,7 +1001,6 @@ void SparcDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
// Select target instructions for the DAG.
DAG.setRoot(SelectRoot(DAG.getRoot()));
- assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
CodeGenMap.clear();
HandleMap.clear();
ReplaceMap.clear();
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index 935038ba3f..fa4d8492e4 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -2106,8 +2106,6 @@ private:
// Names of all the folded nodes which produce chains.
std::vector<std::pair<std::string, unsigned> > FoldedChains;
std::set<std::string> Duplicates;
- /// These nodes are being marked "in-flight" so they cannot be folded.
- std::vector<std::string> InflightNodes;
/// GeneratedCode - This is the buffer that we emit code to. The first bool
/// indicates whether this is an exit predicate (something that should be
@@ -2231,8 +2229,6 @@ public:
OpNo = 1;
if (!isRoot) {
const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator());
- // Not in flight?
- emitCheck("InFlightSet.count(" + RootName + ".Val) == 0");
// Multiple uses of actual result?
emitCheck(RootName + ".hasOneUse()");
EmittedUseCheck = true;
@@ -2477,24 +2473,9 @@ public:
for (unsigned i = 0; i < NumRes; i++)
Code += ", CPTmp" + utostr(i + ResNo);
emitCode(Code + ");");
- if (InflightNodes.size()) {
- // Remove the in-flight nodes if the ComplexPattern does not match!
- emitCode("if (!Match) {");
- for (std::vector<std::string>::iterator AI = InflightNodes.begin(),
- AE = InflightNodes.end(); AI != AE; ++AI)
- emitCode(" SelectionDAG::RemoveInFlightSetEntry(InFlightSet, " +
- *AI + ".Val);");
- emitCode("}");
- }
-
emitCheck("Match");
for (unsigned i = 0; i < NumRes; ++i) {
- emitCode("SelectionDAG::InsertInFlightSetEntry(InFlightSet, CPTmp" +
- utostr(i+ResNo) + ".Val);");
- InflightNodes.push_back("CPTmp" + utostr(i+ResNo));
- }
- for (unsigned i = 0; i < NumRes; ++i) {
emitDecl("Tmp" + utostr(i+ResNo));
emitCode("Select(Tmp" + utostr(i+ResNo) + ", CPTmp" +
utostr(i+ResNo) + ");");
@@ -2608,22 +2589,6 @@ public:
}
}
- // Make sure these operands which would be selected won't be folded while
- // the isel traverses the DAG upward.
- for (unsigned i = 0, e = EmitOrder.size(); i != e; ++i) {
- TreePatternNode *Child = EmitOrder[i].second;
- if (!Child->getName().empty()) {
- std::string &Val = VariableMap[Child->getName()];
- assert(!Val.empty() &&
- "Variable referenced but not defined and not caught earlier!");
- if (Child->isLeaf() && !NodeGetComplexPattern(Child, ISE)) {
- emitCode("SelectionDAG::InsertInFlightSetEntry(InFlightSet, " +
- Val + ".Val);");
- InflightNodes.push_back(Val);
- }
- }
- }
-
// Emit all of the operands.
std::vector<std::pair<unsigned, unsigned> > NumTemps(EmitOrder.size());
for (unsigned i = 0, e = EmitOrder.size(); i != e; ++i) {
@@ -2651,14 +2616,6 @@ public:
emitCode(" Select(InFlag, N.getOperand(N.getNumOperands()-1));");
}
- if (isRoot) {
- // The operands have been selected. Remove them from InFlightSet.
- for (std::vector<std::string>::iterator AI = InflightNodes.begin(),
- AE = InflightNodes.end(); AI != AE; ++AI)
- emitCode("SelectionDAG::RemoveInFlightSetEntry(InFlightSet, " +
- *AI + ".Val);");
- }
-
unsigned NumResults = Inst.getNumResults();
unsigned ResNo = TmpNo++;
if (!isRoot || InputHasChain || NodeHasChain || NodeHasOutFlag ||
@@ -3639,9 +3596,6 @@ void DAGISelEmitter::run(std::ostream &OS) {
OS << "// Instance var to keep track of mapping of place handle nodes\n"
<< "// and their replacement nodes.\n";
OS << "std::map<SDOperand, SDOperand> ReplaceMap;\n";
- OS << "// Keep track of nodes that are currently being selecte and therefore\n"
- << "// should not be folded.\n";
- OS << "std::set<SDNode*> InFlightSet;\n";
OS << "\n";
OS << "// AddHandleReplacement - Note the pending replacement node for a\n"