mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02: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:
parent
54c73ec047
commit
e196f6f63f
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user