[PATCH] D64665: [MachinePipeliner] Refactor schedule emission logic

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 1 08:44:11 PDT 2019


Hi,

Did you test the latest version? Those errors were all fixed just before I
sent the last email (unless I somehow managed to upload the wrong
version...)

(The compiler options I use are slightly more permissive which is why these
errors didn't show during development)


James

On Thu, 1 Aug 2019, 15:47 Jinsong Ji via Phabricator, <
reviews at reviews.llvm.org> wrote:

> 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
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190801/15777349/attachment.html>


More information about the llvm-commits mailing list