mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-19 04:31:17 +00:00
Trim some unneeded fields.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42442 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
005ac653f2
commit
74d2fd8dd8
@ -113,8 +113,6 @@ namespace llvm {
|
||||
short NumSuccs; // # of sucss.
|
||||
short NumPredsLeft; // # of preds not scheduled.
|
||||
short NumSuccsLeft; // # of succs not scheduled.
|
||||
short NumChainPredsLeft; // # of chain preds not scheduled.
|
||||
short NumChainSuccsLeft; // # of chain succs not scheduled.
|
||||
bool isTwoAddress : 1; // Is a two-address instruction.
|
||||
bool isCommutable : 1; // Is a commutable instruction.
|
||||
bool hasImplicitDefs : 1; // Has implicit physical reg defs.
|
||||
@ -131,7 +129,6 @@ namespace llvm {
|
||||
SUnit(SDNode *node, unsigned nodenum)
|
||||
: Node(node), InstanceNo(0), NodeNum(nodenum), Latency(0),
|
||||
NumPreds(0), NumSuccs(0), NumPredsLeft(0), NumSuccsLeft(0),
|
||||
NumChainPredsLeft(0), NumChainSuccsLeft(0),
|
||||
isTwoAddress(false), isCommutable(false), hasImplicitDefs(false),
|
||||
isPending(false), isAvailable(false), isScheduled(false),
|
||||
CycleBound(0), Cycle(0), Depth(0), Height(0),
|
||||
@ -147,19 +144,14 @@ namespace llvm {
|
||||
return false;
|
||||
Preds.push_back(SDep(N, PhyReg, Cost, isCtrl, isSpecial));
|
||||
N->Succs.push_back(SDep(this, PhyReg, Cost, isCtrl, isSpecial));
|
||||
if (isCtrl) {
|
||||
if (!N->isScheduled)
|
||||
++NumChainPredsLeft;
|
||||
if (!isScheduled)
|
||||
++N->NumChainSuccsLeft;
|
||||
} else {
|
||||
if (!isCtrl) {
|
||||
++NumPreds;
|
||||
++N->NumSuccs;
|
||||
if (!N->isScheduled)
|
||||
++NumPredsLeft;
|
||||
if (!isScheduled)
|
||||
++N->NumSuccsLeft;
|
||||
}
|
||||
if (!N->isScheduled)
|
||||
++NumPredsLeft;
|
||||
if (!isScheduled)
|
||||
++N->NumSuccsLeft;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -178,19 +170,14 @@ namespace llvm {
|
||||
}
|
||||
assert(FoundSucc && "Mismatching preds / succs lists!");
|
||||
Preds.erase(I);
|
||||
if (isCtrl) {
|
||||
if (!N->isScheduled)
|
||||
--NumChainPredsLeft;
|
||||
if (!isScheduled)
|
||||
--NumChainSuccsLeft;
|
||||
} else {
|
||||
if (!isCtrl) {
|
||||
--NumPreds;
|
||||
--N->NumSuccs;
|
||||
if (!N->isScheduled)
|
||||
--NumPredsLeft;
|
||||
if (!isScheduled)
|
||||
--N->NumSuccsLeft;
|
||||
}
|
||||
if (!N->isScheduled)
|
||||
--NumPredsLeft;
|
||||
if (!isScheduled)
|
||||
--N->NumSuccsLeft;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -941,8 +941,6 @@ void SUnit::dumpAll(const SelectionDAG *G) const {
|
||||
|
||||
cerr << " # preds left : " << NumPredsLeft << "\n";
|
||||
cerr << " # succs left : " << NumSuccsLeft << "\n";
|
||||
cerr << " # chain preds left : " << NumChainPredsLeft << "\n";
|
||||
cerr << " # chain succs left : " << NumChainSuccsLeft << "\n";
|
||||
cerr << " Latency : " << Latency << "\n";
|
||||
cerr << " Depth : " << Depth << "\n";
|
||||
cerr << " Height : " << Height << "\n";
|
||||
|
@ -116,15 +116,12 @@ void ScheduleDAGList::Schedule() {
|
||||
/// ReleaseSucc - Decrement the NumPredsLeft count of a successor. Add it to
|
||||
/// the PendingQueue if the count reaches zero.
|
||||
void ScheduleDAGList::ReleaseSucc(SUnit *SuccSU, bool isChain) {
|
||||
if (!isChain)
|
||||
SuccSU->NumPredsLeft--;
|
||||
else
|
||||
SuccSU->NumChainPredsLeft--;
|
||||
SuccSU->NumPredsLeft--;
|
||||
|
||||
assert(SuccSU->NumPredsLeft >= 0 && SuccSU->NumChainPredsLeft >= 0 &&
|
||||
assert(SuccSU->NumPredsLeft >= 0 &&
|
||||
"List scheduling internal error");
|
||||
|
||||
if ((SuccSU->NumPredsLeft + SuccSU->NumChainPredsLeft) == 0) {
|
||||
if (SuccSU->NumPredsLeft == 0) {
|
||||
// Compute how many cycles it will be before this actually becomes
|
||||
// available. This is the max of the start time of all predecessors plus
|
||||
// their latencies.
|
||||
@ -276,7 +273,7 @@ void ScheduleDAGList::ListScheduleTopDown() {
|
||||
// Verify that all SUnits were scheduled.
|
||||
bool AnyNotSched = false;
|
||||
for (unsigned i = 0, e = SUnits.size(); i != e; ++i) {
|
||||
if (SUnits[i].NumPredsLeft != 0 || SUnits[i].NumChainPredsLeft != 0) {
|
||||
if (SUnits[i].NumPredsLeft != 0) {
|
||||
if (!AnyNotSched)
|
||||
cerr << "*** List scheduling failed! ***\n";
|
||||
SUnits[i].dump(&DAG);
|
||||
|
@ -202,13 +202,10 @@ void ScheduleDAGRRList::ReleasePred(SUnit *PredSU, bool isChain,
|
||||
// interrupt model (drain vs. freeze).
|
||||
PredSU->CycleBound = std::max(PredSU->CycleBound, CurCycle + PredSU->Latency);
|
||||
|
||||
if (!isChain)
|
||||
--PredSU->NumSuccsLeft;
|
||||
else
|
||||
--PredSU->NumChainSuccsLeft;
|
||||
--PredSU->NumSuccsLeft;
|
||||
|
||||
#ifndef NDEBUG
|
||||
if (PredSU->NumSuccsLeft < 0 || PredSU->NumChainSuccsLeft < 0) {
|
||||
if (PredSU->NumSuccsLeft < 0) {
|
||||
cerr << "*** List scheduling failed! ***\n";
|
||||
PredSU->dump(&DAG);
|
||||
cerr << " has been released too many times!\n";
|
||||
@ -216,7 +213,7 @@ void ScheduleDAGRRList::ReleasePred(SUnit *PredSU, bool isChain,
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((PredSU->NumSuccsLeft + PredSU->NumChainSuccsLeft) == 0) {
|
||||
if (PredSU->NumSuccsLeft == 0) {
|
||||
// EntryToken has to go last! Special case it here.
|
||||
if (!PredSU->Node || PredSU->Node->getOpcode() != ISD::EntryToken) {
|
||||
PredSU->isAvailable = true;
|
||||
@ -287,10 +284,7 @@ void ScheduleDAGRRList::CapturePred(SUnit *PredSU, SUnit *SU, bool isChain) {
|
||||
AvailableQueue->remove(PredSU);
|
||||
}
|
||||
|
||||
if (!isChain)
|
||||
++PredSU->NumSuccsLeft;
|
||||
else
|
||||
++PredSU->NumChainSuccsLeft;
|
||||
++PredSU->NumSuccsLeft;
|
||||
}
|
||||
|
||||
/// UnscheduleNodeBottomUp - Remove the node from the schedule, update its and
|
||||
@ -713,7 +707,7 @@ void ScheduleDAGRRList::ListScheduleBottomUp() {
|
||||
// Verify that all SUnits were scheduled.
|
||||
bool AnyNotSched = false;
|
||||
for (unsigned i = 0, e = SUnits.size(); i != e; ++i) {
|
||||
if (SUnits[i].NumSuccsLeft != 0 || SUnits[i].NumChainSuccsLeft != 0) {
|
||||
if (SUnits[i].NumSuccsLeft != 0) {
|
||||
if (!AnyNotSched)
|
||||
cerr << "*** List scheduling failed! ***\n";
|
||||
SUnits[i].dump(&DAG);
|
||||
@ -739,13 +733,10 @@ void ScheduleDAGRRList::ReleaseSucc(SUnit *SuccSU, bool isChain,
|
||||
// interrupt model (drain vs. freeze).
|
||||
SuccSU->CycleBound = std::max(SuccSU->CycleBound, CurCycle + SuccSU->Latency);
|
||||
|
||||
if (!isChain)
|
||||
--SuccSU->NumPredsLeft;
|
||||
else
|
||||
--SuccSU->NumChainPredsLeft;
|
||||
--SuccSU->NumPredsLeft;
|
||||
|
||||
#ifndef NDEBUG
|
||||
if (SuccSU->NumPredsLeft < 0 || SuccSU->NumChainPredsLeft < 0) {
|
||||
if (SuccSU->NumPredsLeft < 0) {
|
||||
cerr << "*** List scheduling failed! ***\n";
|
||||
SuccSU->dump(&DAG);
|
||||
cerr << " has been released too many times!\n";
|
||||
@ -753,7 +744,7 @@ void ScheduleDAGRRList::ReleaseSucc(SUnit *SuccSU, bool isChain,
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((SuccSU->NumPredsLeft + SuccSU->NumChainPredsLeft) == 0) {
|
||||
if (SuccSU->NumPredsLeft == 0) {
|
||||
SuccSU->isAvailable = true;
|
||||
AvailableQueue->push(SuccSU);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user