diff options
author | Andrew Trick <atrick@apple.com> | 2012-02-01 22:13:57 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2012-02-01 22:13:57 +0000 |
commit | ee498d3254b86bceb4f441741e9f442990647ce6 (patch) | |
tree | f2319c428f9e572162a0ca172a573da5ea39bcdf /include/llvm/Target | |
parent | f18a9a2314542ad3b7a601b86969073519e19b0d (diff) | |
download | external_llvm-ee498d3254b86bceb4f441741e9f442990647ce6.zip external_llvm-ee498d3254b86bceb4f441741e9f442990647ce6.tar.gz external_llvm-ee498d3254b86bceb4f441741e9f442990647ce6.tar.bz2 |
VLIW specific scheduler framework that utilizes deterministic finite automaton (DFA).
This new scheduler plugs into the existing selection DAG scheduling framework. It is a top-down critical path scheduler that tracks register pressure and uses a DFA for pipeline modeling.
Patch by Sergei Larin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149547 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Target')
-rw-r--r-- | include/llvm/Target/TargetInstrInfo.h | 7 | ||||
-rw-r--r-- | include/llvm/Target/TargetLowering.h | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/include/llvm/Target/TargetInstrInfo.h b/include/llvm/Target/TargetInstrInfo.h index f41ee41..fb902d4 100644 --- a/include/llvm/Target/TargetInstrInfo.h +++ b/include/llvm/Target/TargetInstrInfo.h @@ -15,6 +15,7 @@ #define LLVM_TARGET_TARGETINSTRINFO_H #include "llvm/MC/MCInstrInfo.h" +#include "llvm/CodeGen/DFAPacketizer.h" #include "llvm/CodeGen/MachineFunction.h" namespace llvm { @@ -811,6 +812,12 @@ public: breakPartialRegDependency(MachineBasicBlock::iterator MI, unsigned OpNum, const TargetRegisterInfo *TRI) const {} + /// Create machine specific model for scheduling. + virtual DFAPacketizer* + CreateTargetScheduleState(const TargetMachine*, const ScheduleDAG*) const { + return NULL; + } + private: int CallFrameSetupOpcode, CallFrameDestroyOpcode; }; diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index 8ff2a09..d66341a 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -59,7 +59,8 @@ namespace llvm { 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. + ILP, // Scheduling for ILP in low register pressure mode. + VLIW // Scheduling for VLIW targets. }; } |