mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
When scheduling a block in parts, keep track of the overall
instruction index across each part. Instruction indices are used to make live range queries, and live ranges can extend beyond scheduling region boundaries. Refactor the ScheduleDAGSDNodes class some more so that it doesn't have to worry about this additional information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64288 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -120,6 +120,12 @@ namespace llvm {
|
||||
SmallSet<unsigned, 8> LoopLiveInRegs;
|
||||
|
||||
public:
|
||||
MachineBasicBlock *BB; // Current basic block
|
||||
MachineBasicBlock::iterator Begin; // The beginning of the range to
|
||||
// be scheduled. The range extends
|
||||
// to InsertPos.
|
||||
unsigned InsertPosIndex; // The index in BB of InsertPos.
|
||||
|
||||
explicit ScheduleDAGInstrs(MachineFunction &mf,
|
||||
const MachineLoopInfo &mli,
|
||||
const MachineDominatorTree &mdt);
|
||||
@@ -139,6 +145,13 @@ namespace llvm {
|
||||
return &SUnits.back();
|
||||
}
|
||||
|
||||
/// Run - perform scheduling.
|
||||
///
|
||||
void Run(MachineBasicBlock *bb,
|
||||
MachineBasicBlock::iterator begin,
|
||||
MachineBasicBlock::iterator end,
|
||||
unsigned endindex);
|
||||
|
||||
/// BuildSchedGraph - Build SUnits from the MachineBasicBlock that we are
|
||||
/// input.
|
||||
virtual void BuildSchedGraph();
|
||||
|
Reference in New Issue
Block a user