[PATCH] D59626: [AMDGPU] Add MachineDCE pass after RenameIndependentSubregs

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 9 09:27:17 PDT 2019


rampitec added a comment.

In D59626#1460006 <https://reviews.llvm.org/D59626#1460006>, @bjope wrote:

> For the record, I think the "multiple connected components" problem could have been solved by something like this after the call to "createAndComputeVirtRegInterval"
>
>   LiveInterval &LI = LIS->getInterval(Reg);
>   assert(Reg == LI.reg && "Invalid reg to interval mapping");
>   if (TargetRegisterInfo::isVirtualRegister(LI.reg)) {
>     // Check whether or not LI is composed by multiple connected
>     // components and if that is the case, fix that.
>     SmallVector<LiveInterval*, 8> SplitLIs;
>     LIS->splitSeparateComponents(LI, SplitLIs);
>   }
>   
>
> However, that still leaves the questions about if the pass should do less optimizations related to physregs when LIS is available, or how to preserve LIS if optimizing on physregs.
>  And I'm not sure about the cost of using splitSeparateComponents compared to a full recompute.


Thank you for the hint and test case. For the phys I could remove all regunits, but for some reason I cannot always get them reconstructed. It will need some more debugging.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59626/new/

https://reviews.llvm.org/D59626





More information about the llvm-commits mailing list