aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-05-24 20:46:25 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-05-24 20:46:25 +0000
commitafe358e7d46da9d29ba02fbbf81bdfb4ac4a4520 (patch)
tree33bd3fad3ad4f816f05c564f9327f7dd74762041
parent19b7e0e0cabfa6dfc559c64e3d6ed053832c4047 (diff)
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
-rw-r--r--lib/Target/ARM/ARMISelDAGToDAG.cpp2
-rw-r--r--lib/Target/Alpha/AlphaISelDAGToDAG.cpp2
-rw-r--r--lib/Target/IA64/IA64ISelDAGToDAG.cpp2
-rw-r--r--lib/Target/PowerPC/PPCISelDAGToDAG.cpp2
-rw-r--r--lib/Target/Sparc/SparcISelDAGToDAG.cpp2
-rw-r--r--lib/Target/X86/X86ISelDAGToDAG.cpp2
6 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp
index 7cf7dd37a4..b3ee0d17e3 100644
--- a/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -161,6 +161,8 @@ void ARMDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
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 772da03ac4..8126c33b38 100644
--- a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
+++ b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
@@ -155,6 +155,8 @@ void AlphaDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
// 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 e6ed9f9fa6..6ac8ad68c0 100644
--- a/lib/Target/IA64/IA64ISelDAGToDAG.cpp
+++ b/lib/Target/IA64/IA64ISelDAGToDAG.cpp
@@ -148,6 +148,8 @@ void IA64DAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
// 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 c164020eca..9e22f1145b 100644
--- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
+++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
@@ -206,6 +206,8 @@ void PPCDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
// 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 25f6e234a2..19df27e27a 100644
--- a/lib/Target/Sparc/SparcISelDAGToDAG.cpp
+++ b/lib/Target/Sparc/SparcISelDAGToDAG.cpp
@@ -996,6 +996,8 @@ void SparcDAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
// 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 b53748ab75..af28f830db 100644
--- a/lib/Target/X86/X86ISelDAGToDAG.cpp
+++ b/lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -186,6 +186,8 @@ void X86DAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) {
DEBUG(std::cerr << "===== Instruction selection ends:\n");
#endif
CodeGenMap.clear();
+ HandleMap.clear();
+ ReplaceMap.clear();
DAG.RemoveDeadNodes();
// Emit machine code to BB.