mirror of
https://github.com/intel/llvm.git
synced 2026-01-27 14:50:42 +08:00
[ModuloSchedule] Fix data types in ModuloScheduleExpander::isLoopCarried
The cycle values in modulo scheduling results can be negative. The result of ModuloSchedule::getCycle() must be received as an int type. Patch by Masaki Arai! Differential Revision: https://reviews.llvm.org/D71122
This commit is contained in:
@@ -1190,7 +1190,7 @@ void ModuloScheduleExpander::rewriteScheduledInstr(
|
||||
bool ModuloScheduleExpander::isLoopCarried(MachineInstr &Phi) {
|
||||
if (!Phi.isPHI())
|
||||
return false;
|
||||
unsigned DefCycle = Schedule.getCycle(&Phi);
|
||||
int DefCycle = Schedule.getCycle(&Phi);
|
||||
int DefStage = Schedule.getStage(&Phi);
|
||||
|
||||
unsigned InitVal = 0;
|
||||
@@ -1199,7 +1199,7 @@ bool ModuloScheduleExpander::isLoopCarried(MachineInstr &Phi) {
|
||||
MachineInstr *Use = MRI.getVRegDef(LoopVal);
|
||||
if (!Use || Use->isPHI())
|
||||
return true;
|
||||
unsigned LoopCycle = Schedule.getCycle(Use);
|
||||
int LoopCycle = Schedule.getCycle(Use);
|
||||
int LoopStage = Schedule.getStage(Use);
|
||||
return (LoopCycle > DefCycle) || (LoopStage <= DefStage);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user