mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-11 07:22:17 +00:00
Simplify the interface to the schedulers, to not pass the selected heuristic
in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26691 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -34,16 +34,6 @@ namespace llvm {
|
|||||||
typedef std::vector<NodeInfoPtr> NIVector;
|
typedef std::vector<NodeInfoPtr> NIVector;
|
||||||
typedef std::vector<NodeInfoPtr>::iterator NIIterator;
|
typedef std::vector<NodeInfoPtr>::iterator NIIterator;
|
||||||
|
|
||||||
// Scheduling heuristics
|
|
||||||
enum SchedHeuristics {
|
|
||||||
defaultScheduling, // Let the target specify its preference.
|
|
||||||
noScheduling, // No scheduling, emit breadth first sequence.
|
|
||||||
simpleScheduling, // Two pass, min. critical path, max. utilization.
|
|
||||||
simpleNoItinScheduling, // Same as above exact using generic latency.
|
|
||||||
listSchedulingBURR, // Bottom up reg reduction list scheduling.
|
|
||||||
listSchedulingTD // Top-down list scheduler.
|
|
||||||
};
|
|
||||||
|
|
||||||
/// HazardRecognizer - This determines whether or not an instruction can be
|
/// HazardRecognizer - This determines whether or not an instruction can be
|
||||||
/// issued this cycle, and whether or not a noop needs to be inserted to handle
|
/// issued this cycle, and whether or not a noop needs to be inserted to handle
|
||||||
/// the hazard.
|
/// the hazard.
|
||||||
@@ -296,8 +286,7 @@ namespace llvm {
|
|||||||
const TargetMachine &tm)
|
const TargetMachine &tm)
|
||||||
: DAG(dag), BB(bb), TM(tm) {}
|
: DAG(dag), BB(bb), TM(tm) {}
|
||||||
|
|
||||||
virtual ~ScheduleDAG() {
|
virtual ~ScheduleDAG() {}
|
||||||
};
|
|
||||||
|
|
||||||
/// Run - perform scheduling.
|
/// Run - perform scheduling.
|
||||||
///
|
///
|
||||||
@@ -337,10 +326,11 @@ namespace llvm {
|
|||||||
std::map<SDNode*, unsigned> &VRBaseMap);
|
std::map<SDNode*, unsigned> &VRBaseMap);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ScheduleDAG *createBFS_DAGScheduler(SelectionDAG &DAG, MachineBasicBlock *BB);
|
||||||
|
|
||||||
/// createSimpleDAGScheduler - This creates a simple two pass instruction
|
/// createSimpleDAGScheduler - This creates a simple two pass instruction
|
||||||
/// scheduler.
|
/// scheduler.
|
||||||
ScheduleDAG* createSimpleDAGScheduler(SchedHeuristics Heuristic,
|
ScheduleDAG* createSimpleDAGScheduler(bool NoItins, SelectionDAG &DAG,
|
||||||
SelectionDAG &DAG,
|
|
||||||
MachineBasicBlock *BB);
|
MachineBasicBlock *BB);
|
||||||
|
|
||||||
/// createBURRListDAGScheduler - This creates a bottom up register usage
|
/// createBURRListDAGScheduler - This creates a bottom up register usage
|
||||||
|
Reference in New Issue
Block a user