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

Mikael Holmén via llvm-commits llvm-commits at lists.llvm.org
Thu May 12 05:40:09 PDT 2016


Hi Wei and Quentin,

On 05/10/2016 07:55 PM, Wei Mi wrote:
[...]
> Mikael, thanks for getting the dump. The problem is that in Phoenix
> Post Coalescer, the following instruction becomes dead and it is
> marked as dead, but it is never deleted until regsplit in regalloc
> finds it dead and calls eliminateDeadDef for it.
>
> %vreg51<def,dead,tied1> = addh_nimm5_a32_aNhDst_formatDstN32
> %vreg51<tied0>, 4, pred:0, pred:%noreg, pred:0, %CCReg<imp-def,dead>,
> %cuc<imp-use>; aNh_0_7:%vreg51

Yes, this instruction is introduced by our software pipeline pass 
running post coalescer. In the epilogue produced by the software 
pipeliner there may be dead code.

> Maybe regalloc should allow IR containing dead instruction as its
> input, since itself leaves some dead instructions in the IR for the
> sake of better rematerialization.  Quentin, what do you think? If that
> is the case, the patch D19486 maybe needed.

Sounds good to me but I don't know if that breaks any general assumption.

Quentin?

Thanks,
Mikael

>
> Wei.
>


More information about the llvm-commits mailing list