On Mon, 2 Jun 2025, Jeff Law wrote: > On 6/1/25 1:12 AM, H.J. Lu wrote: > > Move get_call_rtx_from to final.c and call call_from_call_insn. > > > > PR other/120493 > > * final.cc (call_from_call_insn): Change the argument type to > > const rtx_call_insn *. > > (get_call_rtx_from): New. > > * rtl.h (is_a_helper <const rtx_call_insn *>::test): New. > > (get_call_rtx_from): Moved to the final.cc section. > > * rtlanal.cc (get_call_rtx_from): Removed. > > > > Tested on x86-64. > Note this did not preserve semantics, though ultimately I think the problem is > a specific to the c6x port and the old semantics were buggy IMHO. I haven't > dug deeply, but I suspect the old code returned NULL_RTX for this because the > call operand wasn't a MEM.
It also causes an ICE building glibc for s390-linux-gnu. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120525 -- Joseph S. Myers josmy...@redhat.com