diff options
author | Thomas Raoux <thomasraoux@google.com> | 2019-12-09 07:24:18 -0800 |
---|---|---|
committer | Thomas Raoux <thomasraoux@google.com> | 2019-12-09 07:37:00 -0800 |
commit | caabb713ea157f8c449c8d3eb00410bbef734a22 (patch) | |
tree | 597660480ece52749f7afc2dcab5fec0bece92e8 /llvm/lib/CodeGen/ModuloSchedule.cpp | |
parent | decdbc1155f5120554269319b1c77675bac9151c (diff) | |
download | llvm-caabb713ea157f8c449c8d3eb00410bbef734a22.zip llvm-caabb713ea157f8c449c8d3eb00410bbef734a22.tar.gz llvm-caabb713ea157f8c449c8d3eb00410bbef734a22.tar.bz2 |
[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
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
-rw-r--r-- | llvm/lib/CodeGen/ModuloSchedule.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/ModuloSchedule.cpp b/llvm/lib/CodeGen/ModuloSchedule.cpp index 097b836..163e52d 100644 --- a/llvm/lib/CodeGen/ModuloSchedule.cpp +++ b/llvm/lib/CodeGen/ModuloSchedule.cpp @@ -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); } |