Another problem with "Recommit r265547, and r265610, r265639, r265657"

Wei Mi via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 27 14:53:59 PDT 2016


>>
>> And does it matter that %vreg29 isn't marked as dead? If so, who should do that marking?
>
> The liveness analysis is supposed to do that IIRC. The dead flags are supposed to be properly set otherwise it is considered a bug.
>
> Cheers,
> -Quentin

dead and kill flags are marked by LiveVariables analysis. However I
find the following paragraph of comment in Passes.cpp:

  // FIXME: Once TwoAddressInstruction pass no longer uses kill flags,
  // LiveVariables can be removed completely, and LiveIntervals can be directly
  // computed. (We still either need to regenerate kill flags after regalloc, or
  // preferably fix the scavenger to not depend on them).
  addPass(&LiveVariablesID, false);

That is why I don't see LiveVariables analysis required after phi
eliminatation pass. I guess following passes shouldn't depend on
dead/kill flags but depend on LiveIntervals analysis to get the
precise interval.

%vreg29 at 528B becomes dead after RegisterCoalescer pass but its live
interval is not updated accordingly, and RegisterCoalescer declares to
preserve LiveIntervals. So may be it is RegisterCoalescer to be
blamed?

Thanks,
Wei.


More information about the llvm-commits mailing list