Vineet Gupta <vine...@rivosinc.com> writes:
>> ...is from late-combine2, so after RA has completed, whereas the earlier
>> dump is from mode switching, so it's hard to tell what late-combine2 is
>> operating on.  Could you give the RTL as late-combine2 sees it?
>> (That would normally be the result of pass_postreload_cse.)
>
> Right, it is attached here.

Thanks.  I think the issue is that:

(insn 9 8 27 2 (parallel [
            (asm_operands/v ("fsrm %0") ("") 0 [
                    (reg:SI 15 a5 [139])
                ]
                 [
                    (asm_input:SI ("r") frm-run-1.c:33)
                ]
                 [] frm-run-1.c:33)
            (clobber (reg:V4096QI 69 frm))
        ]) "frm-run-1.c":33:3 -1
     (nil))

is seen as invalidating FRM and so:

(insn 27 9 28 2 (set (reg:SI 15 a5 [144])
        (reg:SI 69 frm)) "frm-run-1.c":43:1 2829 {frrmsi}
     (nil))

is seen as an uninitialised read.  I suppose clobbers in inline asms
need to be treated as real definitions rather than just kills.

Richard

Reply via email to