Added a temporary option -no-isel-fold-inflight to control whether a "inflight"
authorEvan Cheng <evan.cheng@apple.com>
Fri, 28 Apr 2006 02:09:19 +0000 (02:09 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 28 Apr 2006 02:09:19 +0000 (02:09 +0000)
node can be folded.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28003 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/SelectionDAGISel.h
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index 6ebcda35db7f1b4cdb09737261059bdebafcdb8d..52d85f66d3648a4cd8a197753a34e0caff316a96 100644 (file)
@@ -40,6 +40,7 @@ public:
   SSARegMap *RegMap;
   SelectionDAG *CurDAG;
   MachineBasicBlock *BB;
+  bool FoldNodeInFlight;
 
   SelectionDAGISel(TargetLowering &tli) : TLI(tli), JT(0,0,0,0) {}
 
index 5a97aa6b399c725f77edc39db982c4b1e63ea092..42ba89e41bdc5135edbb8f6bc052de5e4233321c 100644 (file)
@@ -58,6 +58,14 @@ ViewSchedDAGs("view-sched-dags", cl::Hidden,
 static const bool ViewISelDAGs = 0, ViewSchedDAGs = 0;
 #endif
 
+namespace {
+static cl::opt<bool>
+NoFoldNodeInFlight(
+   "no-isel-fold-inflight",
+   cl::Hidden,
+   cl::desc("Do not attempt to fold a node even if it is being selected"));
+}
+
 // Scheduling heuristics
 enum SchedHeuristics {
   defaultScheduling,      // Let the target specify its preference.
@@ -3170,7 +3178,10 @@ void SelectionDAGISel::CodeGenAndEmitDAG(SelectionDAG &DAG) {
   DAG.Combine(true);
   
   if (ViewISelDAGs) DAG.viewGraph();
-  
+
+  // TEMPORARY.
+  FoldNodeInFlight = !NoFoldNodeInFlight;
+
   // Third, instruction select all of the operations to machine code, adding the
   // code to the MachineBasicBlock.
   InstructionSelectBasicBlock(DAG);