[Bug middle-end/61577] [4.9.0 Regression] can't compile on hp-ux v3 ia64
dave.anglin at bell dot net
gcc-bugzilla@gcc.gnu.org
Thu Feb 13 19:44:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61577
--- Comment #173 from dave.anglin at bell dot net ---
On 2020-02-13 1:11 p.m., peter.bisroev at groundlabs dot com wrote:
> If I try to compare this to aCC dump in attachment 47840, I do not see any
> calls to weak. Equivalent section to the above dump in gimple-expr.s
> (_Z18tree_operand_checkPK9tree_nodeiPKciS3_) can be found on line 9007, also
> gimple-expr.o.objdump on line 2099. I believe the place where with gcc we
> expect to see a call to tree_operand_length() through PCREL21B reloc, aCC does
> similar thing in gimple-expr.s line 9098 (gimple-expr.o.objdump line 2181).
I looked at the definition and branches to
_Z18tree_operand_checkPK9tree_nodeiPKciS3_
in the gimple-expr.s file that you uploaded.
We have the following:
.type _Z18tree_operand_checkPK9tree_nodeiPKciS3_,@function
.global _Z18tree_operand_checkPK9tree_nodeiPKciS3_
.size _Z18tree_operand_checkPK9tree_nodeiPKciS3_, 784
// Routine [id=0064] ( tree_operand_check )
// ===
.secalias .abe$170.text, ".text"
.section .abe$170.text = "axC", "progbits", .abe$comdat0010
.align 16
.proc _Z18tree_operand_checkPK9tree_nodeiPKciS3_
..L0:
// $start ARid768 = ;; // A
..L2:
_Z18tree_operand_checkPK9tree_nodeiPKciS3_::
.prologue
// $entry ARid770, S:r32, S:r33, S:r34, S:r35, S:r36 = ;; // A
[tree.h: 3177/1]
//file/line/col tree.h/3177/1
.save ar.pfs, r39
alloc r39 = ar.pfs, 5, 4, 5, 0 // M [tree.h: 3177/1]
<snip>
br.ret.dptk.many rp ;; // B [tree.h: 3181/3]
..L1:
// $end ;; // A
.endp _Z18tree_operand_checkPK9tree_nodeiPKciS3_
nop.m 0 // M
nop.i 0 // I
nop.m 0 // M
nop.m 0 // M
br.call.dptk.many rp = _Z18tree_operand_checkPK9tree_nodeiPKciS3_# ;;
// B [gimple-expr.c: 658/3]
add r9 = 0, r8 // M [gimple-expr.c: 658/3]
.secalias .abe$comdat0010, "_Z18tree_operand_checkPK9tree_nodeiPKciS3_"
The first thing to note is aCC doesn't use weak. Instead, it uses COMDAT
sections. Probably, HP ld does support
weak but it's unlikely there is support for linkonce sections. See defines in
config/pa/som.h. There we implimented
one only support using the linker's COMDAT support.
Regarding the call to _Z18tree_operand_checkPK9tree_nodeiPKciS3_, this is
preceeded by a bunch of nops. This is
probably to allow linker to modify call should it select a different instance
of _Z18tree_operand_checkPK9tree_nodeiPKciS3_.
More information about the Gcc-bugs
mailing list