On 6/3/25 4:11 PM, Joseph Myers wrote:
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
Yea, looks like the same basic signature.
Jeff