mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[Hexagon] Correct the computation of TopReadyCycle and BotReadyCycle of SU
TopReadyCycle and BotReadyCycle were off by one cycle when an SU is either the first instruction or the last instruction in a packet. Patch by Ikhlas Ajbar. llvm-svn: 328000
This commit is contained in:
parent
188d8cc434
commit
2c676c8a0b
@ -153,9 +153,10 @@ bool VLIWResourceModel::reserveResources(SUnit *SU, bool IsTop) {
|
||||
TotalPackets++;
|
||||
return false;
|
||||
}
|
||||
// If this SU does not fit in the packet
|
||||
// If this SU does not fit in the packet or the packet is now full
|
||||
// start a new one.
|
||||
if (!isResourceAvailable(SU, IsTop)) {
|
||||
if (!isResourceAvailable(SU, IsTop) ||
|
||||
Packet.size() >= SchedModel->getIssueWidth()) {
|
||||
ResourcesModel->clearResources();
|
||||
Packet.clear();
|
||||
TotalPackets++;
|
||||
@ -189,15 +190,6 @@ bool VLIWResourceModel::reserveResources(SUnit *SU, bool IsTop) {
|
||||
}
|
||||
#endif
|
||||
|
||||
// If packet is now full, reset the state so in the next cycle
|
||||
// we start fresh.
|
||||
if (Packet.size() >= SchedModel->getIssueWidth()) {
|
||||
ResourcesModel->clearResources();
|
||||
Packet.clear();
|
||||
TotalPackets++;
|
||||
startNewCycle = true;
|
||||
}
|
||||
|
||||
return startNewCycle;
|
||||
}
|
||||
|
||||
@ -1100,10 +1092,10 @@ SUnit *ConvergingVLIWScheduler::pickNode(bool &IsTopNode) {
|
||||
/// does.
|
||||
void ConvergingVLIWScheduler::schedNode(SUnit *SU, bool IsTopNode) {
|
||||
if (IsTopNode) {
|
||||
SU->TopReadyCycle = Top.CurrCycle;
|
||||
Top.bumpNode(SU);
|
||||
SU->TopReadyCycle = Top.CurrCycle;
|
||||
} else {
|
||||
SU->BotReadyCycle = Bot.CurrCycle;
|
||||
Bot.bumpNode(SU);
|
||||
SU->BotReadyCycle = Bot.CurrCycle;
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,6 @@
|
||||
; CHECK: .LBB0_[[LOOP]]:
|
||||
; CHECK: = add(r{{[0-9]+}},r[[REG0]])
|
||||
; CHECK: = and
|
||||
; CHECK: = and
|
||||
; CHECK: r[[REG0]] = and
|
||||
; CHECK: endloop
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user