public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function
@ 2023-01-12 13:53 eebssk1 at godaftwithebk dot pub
  2023-01-12 15:05 ` [Bug c++/108383] " eebssk1 at godaftwithebk dot pub
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: eebssk1 at godaftwithebk dot pub @ 2023-01-12 13:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

            Bug ID: 108383
           Summary: g++ ICE with -O3 and -flto on simple function
           Product: gcc
           Version: 12.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: eebssk1 at godaftwithebk dot pub
  Target Milestone: ---

Getting ICE with O3&flto when compiling a project.
Using mingw32 cross compiler on linux.
project url: https://github.com/doitsujin/dxvk

x86_64-w64-mingw32-g++  -o src/dxgi/dxgi.dll src/dxgi/dxgi.dll.p/version.o
src/dxgi/dxgi.dll.p/dxgi_adapter.cpp.obj src/dxgi/dxgi.dll.p/dxgi_enums.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_factory.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_format.cpp.obj src/dxgi/dxgi.dll.p/dxgi_main.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_monitor.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_options.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_output.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_surface.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_swapchain.cpp.obj -Wl,--allow-shlib-undefined -Wl,-O1
-shared ../src/dxgi/dxgi.def -Wl,--start-group
-Wl,--out-implib=src/dxgi/dxgi.dll.a -static -static-libgcc -static-libstdc++
-Wl,--file-alignment=4096 src/dxvk/libdxvk.a src/util/libutil.a
src/spirv/libspirv.a src/wsi/libwsi.a
subprojects/libdisplay-info/libdisplay-info.a src/vulkan/libvkcommon.a -pthread
-lm -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid
-lcomdlg32 -ladvapi32 -Wl,--end-group
lto-wrapper: warning: using serial compilation of 21 LTRANS jobs
lto-wrapper: note: see the ‘-flto’ option documentation for more information
during GIMPLE pass: alias
../src/dxgi/dxgi_adapter.cpp: In member function
‘RegisterVideoMemoryBudgetChangeNotificationEvent’:
../src/dxgi/dxgi_adapter.cpp:402:61: internal compiler error: in
binds_to_current_def_p, at symtab.cc:2494
  402 |   HRESULT STDMETHODCALLTYPE 
DxgiAdapter::RegisterVideoMemoryBudgetChangeNotificationEvent(
      |                                                             ^
0x62d5fd symtab_node::binds_to_current_def_p(symtab_node*)
        ../../gcc/symtab.cc:2494
0x84ddd7 gimple_call_arg_flags(gcall const*, unsigned int)
        ../../gcc/gimple.cc:1583
0xce9a84 handle_rhs_call
        ../../gcc/tree-ssa-structalias.cc:4335
0xcebe1a find_func_aliases_for_call
        ../../gcc/tree-ssa-structalias.cc:5010
0xcebe1a find_func_aliases
        ../../gcc/tree-ssa-structalias.cc:5113
0xcee3c6 compute_points_to_sets
        ../../gcc/tree-ssa-structalias.cc:7536
0xcee3c6 compute_may_aliases()
        ../../gcc/tree-ssa-structalias.cc:8044
0xa4ff5c execute_function_todo
        ../../gcc/passes.cc:2057
0xa50c9c do_per_function
        ../../gcc/passes.cc:1688
0xa50c9c execute_todo
        ../../gcc/passes.cc:2139
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
lto-wrapper: fatal error: x86_64-w64-mingw32-g++ returned 1 exit status
compilation terminated.

and then

../src/dxgi/dxgi_adapter.cpp: In member function
‘RegisterVideoMemoryBudgetChangeNotificationEvent’:
../src/dxgi/dxgi_adapter.cpp:402:71: internal compiler error: in
binds_to_current_def_p, at symtab.cc:2494
  402 |   HRESULT STDMETHODCALLTYPE __attribute__((optimize("no-tree-pta"))) 
DxgiAdapter::RegisterVideoMemoryBudgetChangeNotificationEvent(
      |                                                                       ^
0x62d5fd symtab_node::binds_to_current_def_p(symtab_node*)
        ../../gcc/symtab.cc:2494
0x912baf merge_call_side_effects
        ../../gcc/ipa-modref.cc:1310
0x913671 analyze_call
        ../../gcc/ipa-modref.cc:1678
0x913671 analyze_stmt
        ../../gcc/ipa-modref.cc:1811
0x91a19a analyze
        ../../gcc/ipa-modref.cc:1900
0x91a19a analyze_function
        ../../gcc/ipa-modref.cc:3219
0x91c5da execute
        ../../gcc/ipa-modref.cc:4186

and then

with __attribute__((optimize("no-tree-pta","no-ipa-modref")))
the code unit compiled without ICE.

The optimizations are in O1, however if i simply use
__attribute__((optimize(2))),then the code unit does compile too, which is
really weired.

There's similar(may be same?) issues in here:
https://github.com/msys2/MINGW-packages/issues/11726 , ICE in same gcc code
location (symtab.cc:2494), with different flags though.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug c++/108383] g++ ICE with -O3 and -flto on simple function
  2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
@ 2023-01-12 15:05 ` eebssk1 at godaftwithebk dot pub
  2023-01-13  7:25 ` [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor " rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: eebssk1 at godaftwithebk dot pub @ 2023-01-12 15:05 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

--- Comment #1 from eebssk1 at godaftwithebk dot pub ---
It looks like my issue is caused by a extra inconspicuous flag
"-fdeclone-ctor-dtor". The program compiled succefully without it.

I do use this flag on other projects,never have such problem before.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor on simple function
  2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
  2023-01-12 15:05 ` [Bug c++/108383] " eebssk1 at godaftwithebk dot pub
@ 2023-01-13  7:25 ` rguenth at gcc dot gnu.org
  2023-01-13 13:10 ` eebssk1 at godaftwithebk dot pub
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-01-13  7:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |needs-reduction
          Component|c++                         |ipa
                 CC|                            |marxin at gcc dot gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
The docs say this option is enabled by -Os, does using -Os reproduce the same
problem?

It would be nice to have a smaller testcase or to be able to reproduce on
x86_64-linux rather than only mingw ...

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor on simple function
  2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
  2023-01-12 15:05 ` [Bug c++/108383] " eebssk1 at godaftwithebk dot pub
  2023-01-13  7:25 ` [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor " rguenth at gcc dot gnu.org
@ 2023-01-13 13:10 ` eebssk1 at godaftwithebk dot pub
  2023-01-13 13:20 ` eebssk1 at godaftwithebk dot pub
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: eebssk1 at godaftwithebk dot pub @ 2023-01-13 13:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

--- Comment #3 from eebssk1 at godaftwithebk dot pub ---
Exactly same problem with -Os on lto.(Seems reflect the problem in that github
issue)

The project seems only supports mingw target.
I'll get back when have more information.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor on simple function
  2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
                   ` (2 preceding siblings ...)
  2023-01-13 13:10 ` eebssk1 at godaftwithebk dot pub
@ 2023-01-13 13:20 ` eebssk1 at godaftwithebk dot pub
  2023-01-14 11:09 ` ivanka2012 at gmail dot com
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: eebssk1 at godaftwithebk dot pub @ 2023-01-13 13:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

--- Comment #4 from eebssk1 at godaftwithebk dot pub ---
The problem occurs at final linking.

x86_64-w64-mingw32-g++  -o src/dxgi/dxgi.dll src/dxgi/dxgi.dll.p/version.o
src/dxgi/dxgi.dll.p/dxgi_adapter.cpp.obj src/dxgi/dxgi.dll.p/dxgi_enums.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_factory.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_format.cpp.obj src/dxgi/dxgi.dll.p/dxgi_main.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_monitor.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_options.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_output.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_surface.cpp.obj
src/dxgi/dxgi.dll.p/dxgi_swapchain.cpp.obj -Wl,--allow-shlib-undefined -Wl,-O1
-shared ../src/dxgi/dxgi.def -Wl,--start-group
-Wl,--out-implib=src/dxgi/dxgi.dll.a -static -static-libgcc -static-libstdc++
-Wl,--file-alignment=4096
-Wl,-O3,--relax,--sort-section=alignment,--sort-common=descending -flto
src/dxvk/libdxvk.a src/util/libutil.a src/spirv/libspirv.a src/wsi/libwsi.a
subprojects/libdisplay-info/libdisplay-info.a src/vulkan/libvkcommon.a -pthread
-lm -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid
-lcomdlg32 -ladvapi32 -Wl,--end-group -freport-bug
lto-wrapper: warning: using serial compilation of 13 LTRANS jobs
lto-wrapper: note: see the ‘-flto’ option documentation for more information
during GIMPLE pass: alias
../src/dxgi/../util/log/../thread.h: In member function ‘__ct ’:
../src/dxgi/../util/log/../thread.h:110:14: internal compiler error: in
binds_to_current_def_p, at symtab.cc:2494
....

So uhh I currently have no idea on how to provide a testcase in such case.
Sorry,These compiler thing is not my profession. I just open such ticket as no
cares it before.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor on simple function
  2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
                   ` (3 preceding siblings ...)
  2023-01-13 13:20 ` eebssk1 at godaftwithebk dot pub
@ 2023-01-14 11:09 ` ivanka2012 at gmail dot com
  2023-02-06 11:42 ` eebssk1 at godaftwithebk dot pub
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: ivanka2012 at gmail dot com @ 2023-01-14 11:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

Ivan <ivanka2012 at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ivanka2012 at gmail dot com

--- Comment #5 from Ivan <ivanka2012 at gmail dot com> ---
This is related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106103

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor on simple function
  2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
                   ` (4 preceding siblings ...)
  2023-01-14 11:09 ` ivanka2012 at gmail dot com
@ 2023-02-06 11:42 ` eebssk1 at godaftwithebk dot pub
  2024-03-19  7:34 ` sjames at gcc dot gnu.org
  2024-04-16 21:22 ` peter0x44 at disroot dot org
  7 siblings, 0 replies; 9+ messages in thread
From: eebssk1 at godaftwithebk dot pub @ 2023-02-06 11:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

--- Comment #6 from BBK <eebssk1 at godaftwithebk dot pub> ---
I will try modify gcc's code to simply return instead of assert error if the
condition does not match to allow the compilation, and then check if the result
binary still woking as expected. This is only solution I came up with in the
mean time since devs are currently not focused on such small bug.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor on simple function
  2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
                   ` (5 preceding siblings ...)
  2023-02-06 11:42 ` eebssk1 at godaftwithebk dot pub
@ 2024-03-19  7:34 ` sjames at gcc dot gnu.org
  2024-04-16 21:22 ` peter0x44 at disroot dot org
  7 siblings, 0 replies; 9+ messages in thread
From: sjames at gcc dot gnu.org @ 2024-03-19  7:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

Sam James <sjames at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2024-03-19
             Status|UNCONFIRMED                 |WAITING

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor on simple function
  2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
                   ` (6 preceding siblings ...)
  2024-03-19  7:34 ` sjames at gcc dot gnu.org
@ 2024-04-16 21:22 ` peter0x44 at disroot dot org
  7 siblings, 0 replies; 9+ messages in thread
From: peter0x44 at disroot dot org @ 2024-04-16 21:22 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108383

Peter Damianov <peter0x44 at disroot dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |peter0x44 at disroot dot org

--- Comment #7 from Peter Damianov <peter0x44 at disroot dot org> ---
I believe I'm encountering this same bug with cppcheck, when building with
-flto -Os.

during GIMPLE pass: alias
lib/check64bit.h: In member function 'classInfo':
lib/check64bit.h:81:17: internal compiler error: in binds_to_current_def_p, at
symtab.cc:2497
   81 |     std::string classInfo() const override {
      |                 ^
libbacktrace could not find executable to open
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
See <https://gcc.gnu.org/bugs/> for instructions.

This is with gcc 13.2.0

ext      := $(shell find externals -mindepth 1 -type d)
src      := $(shell find cli lib externals -name '*.cpp')
obj      := $(src:.cpp=.o)
CXXFLAGS := -w -Os -Ilib $(addprefix -I,$(ext)) -flto=auto
cppcheck.exe: $(obj)
        x86_64-w64-mingw32-g++ -s -o $@ $(obj) -lshlwapi -flto=auto -Os -s

Place this makefile in the root of the repo, and run it.
(there is an existing one that didn't work for me, hence I named it
"cppcheck.mak")

make -f cppcheck.mak

Hope this helps!

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-04-16 21:22 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-12 13:53 [Bug c++/108383] New: g++ ICE with -O3 and -flto on simple function eebssk1 at godaftwithebk dot pub
2023-01-12 15:05 ` [Bug c++/108383] " eebssk1 at godaftwithebk dot pub
2023-01-13  7:25 ` [Bug ipa/108383] g++ ICE with -O3 and -flto and -fdeclone-ctor-dtor " rguenth at gcc dot gnu.org
2023-01-13 13:10 ` eebssk1 at godaftwithebk dot pub
2023-01-13 13:20 ` eebssk1 at godaftwithebk dot pub
2023-01-14 11:09 ` ivanka2012 at gmail dot com
2023-02-06 11:42 ` eebssk1 at godaftwithebk dot pub
2024-03-19  7:34 ` sjames at gcc dot gnu.org
2024-04-16 21:22 ` peter0x44 at disroot dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).