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

Bjorn Pettersson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 9 09:16:47 PDT 2019


bjope added a comment.

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.


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