[PATCH] D127840: [MachinePipeliner] Fix Phi generation failure for large stages

Yuta Mukai via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 15 02:54:31 PDT 2022


ytmukai created this revision.
ytmukai added a reviewer: bcahoon.
Herald added subscribers: hiraditya, nemanjai.
Herald added a project: All.
ytmukai requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

The previous code overwrites VRMap for prologue stages during Phi
generation if a register spans many stages.
As a result, the wrong register is used as the one coming from
the prologue in Phis at later stages. (A process exists to correct
this, but it does not work in all cases.)
In addition, VRMap for prologue must be preserved until addBranches().

This patch fixes them by separating the map for Phis into a different
variable (VRMapPhi).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D127840

Files:
  llvm/include/llvm/CodeGen/ModuloSchedule.h
  llvm/lib/CodeGen/ModuloSchedule.cpp
  llvm/test/CodeGen/PowerPC/sms-large-stages.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D127840.437092.patch
Type: text/x-patch
Size: 24856 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220615/a1a167e3/attachment-0001.bin>


More information about the llvm-commits mailing list