diff options
| author | Bill Wendling <isanbard@gmail.com> | 2009-12-15 01:54:51 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2009-12-15 01:54:51 +0000 |
| commit | 07beddceb796a0296603fe3952ba8500edad7f72 (patch) | |
| tree | e4b488b6bba3121e8dab74c9353a9a0a5d7cdf85 /llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp | |
| parent | d19564b1095859e98b469af1c0c3c9a87adb80e3 (diff) | |
| download | bcm5719-llvm-07beddceb796a0296603fe3952ba8500edad7f72.tar.gz bcm5719-llvm-07beddceb796a0296603fe3952ba8500edad7f72.zip | |
Initial work on disabling the scheduler. This is a work in progress, and this
stuff isn't used just yet.
We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2'
flags. The hypothesis is that the people who use these flags know what they are
doing, and have hand-optimized the C code to reduce latencies and other
conflicts.
The idea behind our scheme to turn off scheduling is to create a map "on the
side" during DAG generation. It will order the nodes by how they appeared in the
code. This map is then used during scheduling to get the ordering.
llvm-svn: 91392
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp index d53de347a55..b2ee8bb179e 100644 --- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp @@ -20,10 +20,16 @@ #include "llvm/Target/TargetInstrInfo.h" #include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Target/TargetSubtarget.h" +#include "llvm/Support/CommandLine.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" using namespace llvm; +cl::opt<bool> +DisableInstScheduling("disable-inst-scheduling", + cl::init(false), + cl::desc("Disable instruction scheduling")); + ScheduleDAGSDNodes::ScheduleDAGSDNodes(MachineFunction &mf) : ScheduleDAG(mf) { } |

