[LLVMdev] Possible issue with EXPANDING POST-RA PSEUDO INSTRS

Sergei Larin slarin at codeaurora.org
Sun Jul 8 15:42:03 PDT 2012


Hello everyone, 

  I am running into an obscure issue with ExpandPostRA. Does anyone
recognizes the following:

The pass replaces a real copy with a "transfer" instruction:

********** EXPANDING POST-RA PSEUDO INSTRS **********
********** Function: main
real copy:   %R15<def> = COPY %R4, %D2<imp-use,kill>, %D7<imp-use,kill>,
%D7<imp-def>
replaced by: %R15<def> = TFR %R4, %D7<imp-def>

The R4 is a subreg of D2 double register (basically R0:R1==D0; R4:R5==D2
etc.). After this copy D2 is dead, and is marked as such.
Register allocator did not mark R4 as <kill>, and when ExpandPostRA copies
operands, it loses the live range marker.

My questions - is this a known issue? ...and should R4 has been marked as
<kill> in the original instruction?

...and yes... I am on branch 3.1, not on trunk, so if it has been fixed by
now, it would be great to know.

Thanks a lot.

Sergei

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.





More information about the llvm-dev mailing list