On 1/9/23 02:57, Jakub Jelinek via Gcc-patches wrote:
On Mon, Jan 09, 2023 at 09:05:26AM +0100, Richard Biener wrote:
On Wed, Jan 4, 2023 at 9:54 AM Jose E. Marchesi via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:


ping.
Would this be a good approach for fixing the issue?

adding the is_libcall bit enlarges rtx_def by 8 bytes - there's no room for more
bits here.

That is obviously not the way to go, sure.

I really wonder how other targets avoid the issue you are pointing out?
Do their assemblers prune unused (extern) .global?

I think no target solves this, if they see an extern call during expansion
and emit some directive for those, they emit the global or whatever directive
which remains there.

If all bits for CALL_INSN are taken, can't we add a flag on the CALL
rtx inside of the CALL_INSN pattern?  Or a flag on the SYMBOL_REF inside of
it (libcalls are always direct calls, aren't they) or SYMBOL_REF_FLAGS ?
You might look at 32bit PA SOM.  It was always a bit odd in this respect.

You had to import every external symbol explicitly and it disliked importing something that wasn't used. I recall some special handling for libcalls as well.

Jeff

Reply via email to