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.

Reply via email to