[PATCH] D64665: [MachinePipeliner] Refactor schedule emission logic
Jinsong Ji via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 1 07:47:08 PDT 2019
jsji added a comment.
How do you build and test? I can't config & build it with clang.
================
Comment at: lib/CodeGen/MachineLoopUtils.cpp:1
+//=- MachineLoopUtils.cpp - Functions for manipulating loops ----------------=//
+//
----------------
New file, you need to update `llvm/lib/CodeGen/CMakeLists.txt` as well.
================
Comment at: lib/CodeGen/MachinePipeliner.cpp:4287
+ SmallVector<int, 4> LiveStages;
+ for (int I = 0; I < NumPrologs; ++I) {
+ LiveStages.push_back(I);
----------------
`comparison of integers of different signs: 'int' and 'unsigned int'`
================
Comment at: lib/CodeGen/MachinePipeliner.cpp:4296
+ // stage NumStages-1, Epilog 1 performs stage NumStages-2 THEN NumStages-1.
+ for (int I = 0; I < NumPrologs; ++I) {
+ int StartStage = NumStages - 1 - I;
----------------
`comparison of integers of different signs: 'int' and 'unsigned int'`
================
Comment at: lib/CodeGen/MachinePipeliner.cpp:4299
+ CGBlocks.insert(std::next(Kernel), Kernel->peel(LPD_Back));
+ for (int Stage = StartStage + 1; Stage < NumStages; ++Stage) {
+ CGBlocks.insert(std::next(Kernel), Kernel->peel(LPD_Back));
----------------
`comparison of integers of different signs: 'int' and 'unsigned int'`
================
Comment at: lib/CodeGen/MachinePipeliner.cpp:4304
+ auto EBI = std::next(Kernel);
+ for (int I = 0; I < NumPrologs; ++I) {
+ int StartStage = NumStages - 1 - I;
----------------
`comparison of integers of different signs: 'int' and 'unsigned int'`
================
Comment at: lib/CodeGen/MachinePipeliner.cpp:4308
+ EBI++->setLiveStages({StartStage});
+ for (int Stage = StartStage + 1; Stage < NumStages; ++Stage) {
+ EBI++->setLiveStages({Stage});
----------------
`comparison of integers of different signs: 'int' and 'unsigned int'`
================
Comment at: lib/CodeGen/MachinePipeliner.cpp:4417
+ auto *MI = SU->getInstr();
+ InstrInfos[MI] = {Schedule.stageScheduled(SU), Cycle, Index++};
+ if (MI->isPHI())
----------------
`.../llvm-git/llvm-project/llvm/lib/CodeGen/MachinePipeliner.cpp:4417:22: error: no viable overloaded '='
InstrInfos[MI] = {Schedule.stageScheduled(SU), Cycle, Index++};
~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../llvm-git/llvm-project/llvm/lib/CodeGen/MachinePipeliner.cpp:4190:10: note: candidate function (the implicit copy assignment operator) not viable: cannot convert initializer list argument to 'const (anonymous namespace)::CGBlock::InstrInfo'
struct InstrInfo {
^
.../llvm-git/llvm-project/llvm/lib/CodeGen/MachinePipeliner.cpp:4190:10: note: candidate function (the implicit move assignment operator) not viable: cannot convert initializer list argument to '(anonymous namespace)::CGBlock::InstrInfo'
struct InstrInfo {
`
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D64665/new/
https://reviews.llvm.org/D64665
More information about the llvm-commits
mailing list