TaoPan updated this revision to Diff 343598. TaoPan added a comment. git rebase
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101601/new/ https://reviews.llvm.org/D101601 Files: llvm/include/llvm/CodeGen/TargetLowering.h llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp llvm/test/CodeGen/Generic/pre-ra-sched.c Index: llvm/test/CodeGen/Generic/pre-ra-sched.c =================================================================== --- /dev/null +++ llvm/test/CodeGen/Generic/pre-ra-sched.c @@ -0,0 +1,4 @@ +// RUN: clang %s -mllvm -pre-RA-sched=fast -c -o - | FileCheck %s +// RUN: clang %s -mllvm -pre-RA-sched=linearize -c -o - | FileCheck %s + +// CHECK-NOT: clang (LLVM option parsing): for the --pre-RA-sched option: Cannot find option named Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp =================================================================== --- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -270,6 +270,10 @@ return createHybridListDAGScheduler(IS, OptLevel); if (TLI->getSchedulingPreference() == Sched::VLIW) return createVLIWDAGScheduler(IS, OptLevel); + if (TLI->getSchedulingPreference() == Sched::Fast) + return createFastDAGScheduler(IS, OptLevel); + if (TLI->getSchedulingPreference() == Sched::Linearize) + return createDAGLinearizer(IS, OptLevel); assert(TLI->getSchedulingPreference() == Sched::ILP && "Unknown sched type!"); return createILPListDAGScheduler(IS, OptLevel); Index: llvm/include/llvm/CodeGen/TargetLowering.h =================================================================== --- llvm/include/llvm/CodeGen/TargetLowering.h +++ llvm/include/llvm/CodeGen/TargetLowering.h @@ -94,14 +94,16 @@ namespace Sched { - enum Preference { - None, // No preference - Source, // Follow source order. - RegPressure, // Scheduling for lowest register pressure. - Hybrid, // Scheduling for both latency and register pressure. - ILP, // Scheduling for ILP in low register pressure mode. - VLIW // Scheduling for VLIW targets. - }; +enum Preference { + None, // No preference + Source, // Follow source order. + RegPressure, // Scheduling for lowest register pressure. + Hybrid, // Scheduling for both latency and register pressure. + ILP, // Scheduling for ILP in low register pressure mode. + VLIW, // Scheduling for VLIW targets. + Fast, // Fast suboptimal list scheduling + Linearize // Linearize DAG, no scheduling +}; } // end namespace Sched
Index: llvm/test/CodeGen/Generic/pre-ra-sched.c =================================================================== --- /dev/null +++ llvm/test/CodeGen/Generic/pre-ra-sched.c @@ -0,0 +1,4 @@ +// RUN: clang %s -mllvm -pre-RA-sched=fast -c -o - | FileCheck %s +// RUN: clang %s -mllvm -pre-RA-sched=linearize -c -o - | FileCheck %s + +// CHECK-NOT: clang (LLVM option parsing): for the --pre-RA-sched option: Cannot find option named Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp =================================================================== --- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -270,6 +270,10 @@ return createHybridListDAGScheduler(IS, OptLevel); if (TLI->getSchedulingPreference() == Sched::VLIW) return createVLIWDAGScheduler(IS, OptLevel); + if (TLI->getSchedulingPreference() == Sched::Fast) + return createFastDAGScheduler(IS, OptLevel); + if (TLI->getSchedulingPreference() == Sched::Linearize) + return createDAGLinearizer(IS, OptLevel); assert(TLI->getSchedulingPreference() == Sched::ILP && "Unknown sched type!"); return createILPListDAGScheduler(IS, OptLevel); Index: llvm/include/llvm/CodeGen/TargetLowering.h =================================================================== --- llvm/include/llvm/CodeGen/TargetLowering.h +++ llvm/include/llvm/CodeGen/TargetLowering.h @@ -94,14 +94,16 @@ namespace Sched { - enum Preference { - None, // No preference - Source, // Follow source order. - RegPressure, // Scheduling for lowest register pressure. - Hybrid, // Scheduling for both latency and register pressure. - ILP, // Scheduling for ILP in low register pressure mode. - VLIW // Scheduling for VLIW targets. - }; +enum Preference { + None, // No preference + Source, // Follow source order. + RegPressure, // Scheduling for lowest register pressure. + Hybrid, // Scheduling for both latency and register pressure. + ILP, // Scheduling for ILP in low register pressure mode. + VLIW, // Scheduling for VLIW targets. + Fast, // Fast suboptimal list scheduling + Linearize // Linearize DAG, no scheduling +}; } // end namespace Sched
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits