https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117951
Vladimir Makarov <vmakarov at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vmakarov at gcc dot gnu.org
--- Comment #7 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to John David Anglin from comment #0)
> Created attachment 59815 [details]
> I think this is an RTL sharing issue. We have in ipa pass:
>
> (insn 85 44 92 4 (set (reg/f:SI 287)
> (plus:SI (reg/f:SI 280)
> (const_int 4 [0x4])))
> "/home/dave/gnu/gcc/objdir/hppa-linux-gnu/libs
> tdc++-v3/include/bits/stl_tree.h":207:25 120 {addsi3}
> (expr_list:REG_EQUIV (const:SI (plus:SI (symbol_ref/i:SI
> ("_ZZN9__gnu_cxx13
> annotate_base13map_constructEvE6_S_map") [flags 0x202] <var_decl 0xf81d6898
> _S_
> map>)
> (const_int 4 [0x4])))
> (nil)))
> [...]
> (insn 86 114 87 6 (set (mem/f/c:SI (plus:SI (reg/f:SI 280)
> (const_int 12 [0xc])) [152 MEM[(struct _Rb_tree_header
> *)&_S_map + 4B]._M_header._M_left+0 S4 A32])
> (reg/f:SI 287))
> "/home/dave/gnu/gcc/objdir/hppa-linux-gnu/libstdc++-v3/include/bits/stl_tree.
> h":207:25 42 {*pa.md:2195}
> (nil))
> (debug_insn 87 86 95 6 (debug_marker)
> "/home/dave/gnu/gcc/objdir/hppa-linux-gnu/libstdc++-v3/include/bits/stl_tree.
> h":208:7 -1
> (nil))
> (insn 95 87 96 6 (set (mem/f/c:SI (reg/f:SI 288) [152 MEM[(struct
> _Rb_tree_header *)&_S_map + 4B]._M_header._M_right+0 S4 A32])
> (reg/f:SI 287))
> "/home/dave/gnu/gcc/objdir/hppa-linux-gnu/libstdc++-v3/include/bits/stl_tree.
> h":208:26 42 {*pa.md:2195}
> (nil))
>
> I suspect reload fails because there are two sets using reg/f:SI 287.
>
Probably not as I see from the dump file that r287 is changed by equivalent
constant.
> Compile command is:
>
> /home/dave/gnu/gcc/objdir/./gcc/cc1plus -fpreprocessed ./run-run.ii -quiet
> -da -dumpdir ./run- -dumpbase run.cc -dumpbase-ext .cc -g -O2 -std=gnu++17
> -version -fdiagnostics-color=never -fdiagnostics-urls=never -fchecking=1
> -fmessage-length=0 -fno-show-column -ffunction-sections -fdata-sections
> -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
> -fdiagnostics-path-format=separate-events
> -fdiagnostics-text-art-charset=none -fno-diagnostics-show-event-links -o
> ./run-run.s -mlra
The preprocessed file still requires pre-compiled header 02g.gch. So it is
difficult to work with it.
Is the bug still present? Since then there were several patches which might
have solved it.