Added a temporary option -no-isel-fold-inflight to control whether a "inflight"

node can be folded.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28003 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2006-04-28 02:09:19 +00:00
parent 61a0209a8a
commit 552c4a8494
2 changed files with 13 additions and 1 deletions

View File

@ -40,6 +40,7 @@ public:
SSARegMap *RegMap;
SelectionDAG *CurDAG;
MachineBasicBlock *BB;
bool FoldNodeInFlight;
SelectionDAGISel(TargetLowering &tli) : TLI(tli), JT(0,0,0,0) {}

View 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);