1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00

[Pipeliner] Fixed optimization remarks and debug dumps Initiation

Interval value

The II value was incremented before exiting the loop, and therefor when
used in the optimization remarks and debug dumps it did not reflect the
initiation interval actually used in Schedule.

Differential Revision: https://reviews.llvm.org/D95692
This commit is contained in:
Marianne Mailhot-Sarrasin 2021-02-17 12:14:03 -05:00
parent 08661b0074
commit 214897b9a5
2 changed files with 8 additions and 4 deletions

View File

@ -526,6 +526,9 @@ public:
/// Set the initiation interval for this schedule.
void setInitiationInterval(int ii) { InitiationInterval = ii; }
/// Return the initiation interval for this schedule.
int getInitiationInterval() const { return InitiationInterval; }
/// Return the first cycle in the completed schedule. This
/// can be a negative value.
int getFirstCycle() const { return FirstCycle; }

View File

@ -2034,9 +2034,8 @@ bool SwingSchedulerDAG::schedulePipeline(SMSchedule &Schedule) {
}
bool scheduleFound = false;
unsigned II = 0;
// Keep increasing II until a valid schedule is found.
for (II = MII; II <= MAX_II && !scheduleFound; ++II) {
for (unsigned II = MII; II <= MAX_II && !scheduleFound; ++II) {
Schedule.reset();
Schedule.setInitiationInterval(II);
LLVM_DEBUG(dbgs() << "Try to schedule with " << II << "\n");
@ -2109,7 +2108,8 @@ bool SwingSchedulerDAG::schedulePipeline(SMSchedule &Schedule) {
scheduleFound = Schedule.isValidSchedule(this);
}
LLVM_DEBUG(dbgs() << "Schedule Found? " << scheduleFound << " (II=" << II
LLVM_DEBUG(dbgs() << "Schedule Found? " << scheduleFound
<< " (II=" << Schedule.getInitiationInterval()
<< ")\n");
if (scheduleFound) {
@ -2117,7 +2117,8 @@ bool SwingSchedulerDAG::schedulePipeline(SMSchedule &Schedule) {
Pass.ORE->emit([&]() {
return MachineOptimizationRemarkAnalysis(
DEBUG_TYPE, "schedule", Loop.getStartLoc(), Loop.getHeader())
<< "Schedule found with Initiation Interval: " << ore::NV("II", II)
<< "Schedule found with Initiation Interval: "
<< ore::NV("II", Schedule.getInitiationInterval())
<< ", MaxStageCount: "
<< ore::NV("MaxStageCount", Schedule.getMaxStageCount());
});