Clear HandleMap and ReplaceMap after instruction selection. Or it may cause
non-deterministic behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28454 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp
index 7cf7dd3..b3ee0d1 100644
--- a/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -161,6 +161,8 @@
DAG.setRoot(SelectRoot(DAG.getRoot()));
CodeGenMap.clear();
+ HandleMap.clear();
+ ReplaceMap.clear();
DAG.RemoveDeadNodes();
ScheduleAndEmitDAG(DAG);
diff --git a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
index 772da03..8126c33 100644
--- a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
+++ b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
@@ -155,6 +155,8 @@
// Select target instructions for the DAG.
DAG.setRoot(SelectRoot(DAG.getRoot()));
CodeGenMap.clear();
+ HandleMap.clear();
+ ReplaceMap.clear();
DAG.RemoveDeadNodes();
// Emit machine code to BB.
diff --git a/lib/Target/IA64/IA64ISelDAGToDAG.cpp b/lib/Target/IA64/IA64ISelDAGToDAG.cpp
index e6ed9f9..6ac8ad6 100644
--- a/lib/Target/IA64/IA64ISelDAGToDAG.cpp
+++ b/lib/Target/IA64/IA64ISelDAGToDAG.cpp
@@ -148,6 +148,8 @@
// Select target instructions for the DAG.
DAG.setRoot(SelectRoot(DAG.getRoot()));
CodeGenMap.clear();
+ HandleMap.clear();
+ ReplaceMap.clear();
DAG.RemoveDeadNodes();
// Emit machine code to BB.
diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
index c164020..9e22f11 100644
--- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
+++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
@@ -206,6 +206,8 @@
// Select target instructions for the DAG.
DAG.setRoot(SelectRoot(DAG.getRoot()));
CodeGenMap.clear();
+ HandleMap.clear();
+ ReplaceMap.clear();
DAG.RemoveDeadNodes();
// Emit machine code to BB.
diff --git a/lib/Target/Sparc/SparcISelDAGToDAG.cpp b/lib/Target/Sparc/SparcISelDAGToDAG.cpp
index 25f6e23..19df27e 100644
--- a/lib/Target/Sparc/SparcISelDAGToDAG.cpp
+++ b/lib/Target/Sparc/SparcISelDAGToDAG.cpp
@@ -996,6 +996,8 @@
// Select target instructions for the DAG.
DAG.setRoot(SelectRoot(DAG.getRoot()));
CodeGenMap.clear();
+ HandleMap.clear();
+ ReplaceMap.clear();
DAG.RemoveDeadNodes();
// Emit machine code to BB.
diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp
index b53748a..af28f83 100644
--- a/lib/Target/X86/X86ISelDAGToDAG.cpp
+++ b/lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -186,6 +186,8 @@
DEBUG(std::cerr << "===== Instruction selection ends:\n");
#endif
CodeGenMap.clear();
+ HandleMap.clear();
+ ReplaceMap.clear();
DAG.RemoveDeadNodes();
// Emit machine code to BB.