mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Rewrite the SDep class, and simplify some of the related code.
The Cost field is removed. It was only being used in a very limited way, to indicate when the scheduler should attempt to protect a live register, and it isn't really needed to do that. If we ever want the scheduler to start inserting copies in non-prohibitive situations, we'll have to rethink some things anyway. A Latency field is added. Instead of giving each node a single fixed latency, each edge can have its own latency. This will eventually be used to model various micro-architecture properties more accurately. The PointerIntPair class and an internal union are now used, which reduce the overall size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60806 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -176,7 +176,10 @@ void ScheduleDAGSDNodes::BuildSchedUnits() {
|
||||
int Cost = 1;
|
||||
// Determine if this is a physical register dependency.
|
||||
CheckForPhysRegDependency(OpN, N, i, TRI, TII, PhysReg, Cost);
|
||||
SU->addPred(OpSU, isChain, false, PhysReg, Cost);
|
||||
assert((PhysReg == 0 || !isChain) &&
|
||||
"Chain dependence via physreg data?");
|
||||
SU->addPred(SDep(OpSU, isChain ? SDep::Order : SDep::Data,
|
||||
OpSU->Latency, PhysReg));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user