@@ -175,16 +175,21 @@ static cl::opt<bool>
175175ViewISelDAGs (" view-isel-dags" , cl::Hidden,
176176 cl::desc (" Pop up a window to show isel dags as they are selected" ));
177177static cl::opt<bool >
178- ViewSchedDAGs (" view-sched-dags" , cl::Hidden,
179- cl::desc (" Pop up a window to show sched dags as they are processed" ));
178+ WriteDAGsToFile (" write-dags-to-file" , cl::Hidden,
179+ cl::desc (" Write dags as they are selected to DOT files "
180+ " instead of opening viewer" ));
181+ static cl::opt<bool > ViewSchedDAGs (
182+ " view-sched-dags" , cl::Hidden,
183+ cl::desc (" Pop up a window to show sched dags as they are processed" ));
180184static cl::opt<bool >
181185ViewSUnitDAGs (" view-sunit-dags" , cl::Hidden,
182186 cl::desc (" Pop up a window to show SUnit dags after they are processed" ));
183187#else
184188static const bool ViewDAGCombine1 = false , ViewLegalizeTypesDAGs = false ,
185189 ViewDAGCombineLT = false , ViewLegalizeDAGs = false ,
186190 ViewDAGCombine2 = false , ViewISelDAGs = false ,
187- ViewSchedDAGs = false , ViewSUnitDAGs = false ;
191+ WriteDAGsToFile = false , ViewSchedDAGs = false ,
192+ ViewSUnitDAGs = false ;
188193#endif
189194
190195#ifndef NDEBUG
@@ -945,7 +950,7 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
945950#endif
946951
947952 if (ViewDAGCombine1 && MatchFilterBB)
948- CurDAG->viewGraph (" dag-combine1 input for " + BlockName);
953+ CurDAG->viewGraph (" dag-combine1 input for " + BlockName, WriteDAGsToFile );
949954
950955 // Run the DAG combiner in pre-legalize mode.
951956 {
@@ -967,7 +972,7 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
967972 // Second step, hack on the DAG until it only uses operations and types that
968973 // the target supports.
969974 if (ViewLegalizeTypesDAGs && MatchFilterBB)
970- CurDAG->viewGraph (" legalize-types input for " + BlockName);
975+ CurDAG->viewGraph (" legalize-types input for " + BlockName, WriteDAGsToFile );
971976
972977 bool Changed;
973978 {
@@ -991,7 +996,8 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
991996
992997 if (Changed) {
993998 if (ViewDAGCombineLT && MatchFilterBB)
994- CurDAG->viewGraph (" dag-combine-lt input for " + BlockName);
999+ CurDAG->viewGraph (" dag-combine-lt input for " + BlockName,
1000+ WriteDAGsToFile);
9951001
9961002 // Run the DAG combiner in post-type-legalize mode.
9971003 {
@@ -1045,7 +1051,8 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
10451051#endif
10461052
10471053 if (ViewDAGCombineLT && MatchFilterBB)
1048- CurDAG->viewGraph (" dag-combine-lv input for " + BlockName);
1054+ CurDAG->viewGraph (" dag-combine-lv input for " + BlockName,
1055+ WriteDAGsToFile);
10491056
10501057 // Run the DAG combiner in post-type-legalize mode.
10511058 {
@@ -1066,7 +1073,7 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
10661073 }
10671074
10681075 if (ViewLegalizeDAGs && MatchFilterBB)
1069- CurDAG->viewGraph (" legalize input for " + BlockName);
1076+ CurDAG->viewGraph (" legalize input for " + BlockName, WriteDAGsToFile );
10701077
10711078 {
10721079 NamedRegionTimer T (" legalize" , " DAG Legalization" , GroupName,
@@ -1085,7 +1092,7 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
10851092#endif
10861093
10871094 if (ViewDAGCombine2 && MatchFilterBB)
1088- CurDAG->viewGraph (" dag-combine2 input for " + BlockName);
1095+ CurDAG->viewGraph (" dag-combine2 input for " + BlockName, WriteDAGsToFile );
10891096
10901097 // Run the DAG combiner in post-legalize mode.
10911098 {
@@ -1108,7 +1115,7 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
11081115 ComputeLiveOutVRegInfo ();
11091116
11101117 if (ViewISelDAGs && MatchFilterBB)
1111- CurDAG->viewGraph (" isel input for " + BlockName);
1118+ CurDAG->viewGraph (" isel input for " + BlockName, WriteDAGsToFile );
11121119
11131120 // Third, instruction select all of the operations to machine code, adding the
11141121 // code to the MachineBasicBlock.
@@ -1124,7 +1131,7 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
11241131 CurDAG->dump (DumpSortedDAG));
11251132
11261133 if (ViewSchedDAGs && MatchFilterBB)
1127- CurDAG->viewGraph (" scheduler input for " + BlockName);
1134+ CurDAG->viewGraph (" scheduler input for " + BlockName, WriteDAGsToFile );
11281135
11291136 // Schedule machine code.
11301137 ScheduleDAGSDNodes *Scheduler = CreateScheduler ();
0 commit comments