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