[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