mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-01-07 22:24:28 +00:00
Introducing plugable register allocators and instruction schedulers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29434 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -221,29 +221,35 @@ namespace llvm {
|
||||
std::map<SDNode*, unsigned> &VRBaseMap);
|
||||
};
|
||||
|
||||
ScheduleDAG *createBFS_DAGScheduler(SelectionDAG &DAG, MachineBasicBlock *BB);
|
||||
/// createBFS_DAGScheduler - This creates a simple breadth first instruction
|
||||
/// scheduler.
|
||||
ScheduleDAG *createBFS_DAGScheduler(SelectionDAG *DAG, MachineBasicBlock *BB);
|
||||
|
||||
/// createSimpleDAGScheduler - This creates a simple two pass instruction
|
||||
/// scheduler.
|
||||
ScheduleDAG* createSimpleDAGScheduler(bool NoItins, SelectionDAG &DAG,
|
||||
/// scheduler using instruction itinerary.
|
||||
ScheduleDAG* createSimpleDAGScheduler(SelectionDAG *DAG,
|
||||
MachineBasicBlock *BB);
|
||||
|
||||
/// createNoItinsDAGScheduler - This creates a simple two pass instruction
|
||||
/// scheduler without using instruction itinerary.
|
||||
ScheduleDAG* createNoItinsDAGScheduler(SelectionDAG *DAG,
|
||||
MachineBasicBlock *BB);
|
||||
|
||||
/// createBURRListDAGScheduler - This creates a bottom up register usage
|
||||
/// reduction list scheduler.
|
||||
ScheduleDAG* createBURRListDAGScheduler(SelectionDAG &DAG,
|
||||
ScheduleDAG* createBURRListDAGScheduler(SelectionDAG *DAG,
|
||||
MachineBasicBlock *BB);
|
||||
|
||||
/// createTDRRListDAGScheduler - This creates a top down register usage
|
||||
/// reduction list scheduler.
|
||||
ScheduleDAG* createTDRRListDAGScheduler(SelectionDAG &DAG,
|
||||
ScheduleDAG* createTDRRListDAGScheduler(SelectionDAG *DAG,
|
||||
MachineBasicBlock *BB);
|
||||
|
||||
/// createTDListDAGScheduler - This creates a top-down list scheduler with
|
||||
/// the specified hazard recognizer. This takes ownership of the hazard
|
||||
/// recognizer and deletes it when done.
|
||||
ScheduleDAG* createTDListDAGScheduler(SelectionDAG &DAG,
|
||||
MachineBasicBlock *BB,
|
||||
HazardRecognizer *HR);
|
||||
/// a hazard recognizer.
|
||||
ScheduleDAG* createTDListDAGScheduler(SelectionDAG *DAG,
|
||||
MachineBasicBlock *BB);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -67,10 +67,6 @@ public:
|
||||
/// folded during instruction selection?
|
||||
virtual bool CanBeFoldedBy(SDNode *N, SDNode *U) { return true; }
|
||||
|
||||
/// CreateTargetHazardRecognizer - Return a newly allocated hazard recognizer
|
||||
/// to use for this target when scheduling the DAG.
|
||||
virtual HazardRecognizer *CreateTargetHazardRecognizer();
|
||||
|
||||
/// CaseBlock - This structure is used to communicate between SDLowering and
|
||||
/// SDISel for the code generation of additional basic blocks needed by multi-
|
||||
/// case switch statements.
|
||||
|
||||
Reference in New Issue
Block a user