public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f @ 2022-02-08 20:21 zsojka at seznam dot cz 2022-02-08 21:07 ` [Bug tree-optimization/104450] " pinskia at gcc dot gnu.org ` (8 more replies) 0 siblings, 9 replies; 10+ messages in thread From: zsojka at seznam dot cz @ 2022-02-08 20:21 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 Bug ID: 104450 Summary: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu Created attachment 52379 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52379&action=edit reduced testcase Compiler output: $ x86_64-pc-linux-gnu-gcc -O -fnon-call-exceptions -fsanitize=thread -mavx512f testcase.c testcase.c: In function 'foo': testcase.c:8:1: error: BB 2 cannot throw but has an EH edge 8 | foo (void) | ^~~ during GIMPLE pass: isel testcase.c:8:1: internal compiler error: verify_flow_info failed 0xe7189e verify_flow_info() /repo/gcc-trunk/gcc/cfghooks.cc:284 0x127adea execute_function_todo /repo/gcc-trunk/gcc/passes.cc:2096 0x127b2fe execute_todo /repo/gcc-trunk/gcc/passes.cc:2138 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. $ x86_64-pc-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r12-7089-20220208123931-g0103c2e4082-checking-yes-rtl-df-extra-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/12.0.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++ --enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra --with-cloog --with-ppl --with-isl --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld --with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch --prefix=/repo/gcc-trunk//binary-trunk-r12-7089-20220208123931-g0103c2e4082-checking-yes-rtl-df-extra-amd64 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 12.0.1 20220208 (experimental) (GCC) ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz @ 2022-02-08 21:07 ` pinskia at gcc dot gnu.org 2022-02-08 21:14 ` pinskia at gcc dot gnu.org ` (7 subsequent siblings) 8 siblings, 0 replies; 10+ messages in thread From: pinskia at gcc dot gnu.org @ 2022-02-08 21:07 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |12.0 Component|middle-end |tree-optimization ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz 2022-02-08 21:07 ` [Bug tree-optimization/104450] " pinskia at gcc dot gnu.org @ 2022-02-08 21:14 ` pinskia at gcc dot gnu.org 2022-02-09 0:28 ` [Bug tree-optimization/104450] [11/12 " pinskia at gcc dot gnu.org ` (6 subsequent siblings) 8 siblings, 0 replies; 10+ messages in thread From: pinskia at gcc dot gnu.org @ 2022-02-08 21:14 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2022-02-08 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a testcase without -fsanitize=thread: That is you just need -O1 -fnon-call-exceptions -mavx512f: #define vectsize 64 typedef int __attribute__((__vector_size__ (vectsize))) V; typedef float __attribute__((__vector_size__ (vectsize))) F; F f; V v; struct g{~g();}; void foo (void) { g t; v += (V) (0 <= f); } ----- CUT ---- We start out with (the comparison throws): f.0_1 = f; _6 = f.0_1 >= { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; <bb 3> [local count: 1073741824]: _2 = VEC_COND_EXPR <_6, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }>; v.1_3 = v; And isel converts it into: f.0_1 = f; <bb 3> [local count: 1073741824]: _2 = .VCOND (f.0_1, { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 111); But now the comparison and VEC_COND_EXPR is just the builtin .VCOND which is not marked to throw and in bb3 .... ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [11/12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz 2022-02-08 21:07 ` [Bug tree-optimization/104450] " pinskia at gcc dot gnu.org 2022-02-08 21:14 ` pinskia at gcc dot gnu.org @ 2022-02-09 0:28 ` pinskia at gcc dot gnu.org 2022-02-09 7:41 ` rguenth at gcc dot gnu.org ` (5 subsequent siblings) 8 siblings, 0 replies; 10+ messages in thread From: pinskia at gcc dot gnu.org @ 2022-02-09 0:28 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|12.0 |11.3 Summary|[12 Regression] ICE: |[11/12 Regression] ICE: |verify_flow_info failed: BB |verify_flow_info failed: BB |2 cannot throw but has an |2 cannot throw but has an |EH edge with -O |EH edge with -O |-fnon-call-exceptions |-fnon-call-exceptions |-fsanitize=thread -mavx512f |-fsanitize=thread -mavx512f Known to fail| |11.1.0, 11.2.0 Keywords| |needs-bisection Known to work| |10.1.0, 9.1.0 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note GCC 10 and before did: _5 = VEC_COND_EXPR <f.0_1 >= { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }>; Which is marked as maybe throwing. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [11/12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz ` (2 preceding siblings ...) 2022-02-09 0:28 ` [Bug tree-optimization/104450] [11/12 " pinskia at gcc dot gnu.org @ 2022-02-09 7:41 ` rguenth at gcc dot gnu.org 2022-02-09 9:07 ` cvs-commit at gcc dot gnu.org ` (4 subsequent siblings) 8 siblings, 0 replies; 10+ messages in thread From: rguenth at gcc dot gnu.org @ 2022-02-09 7:41 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Hmm, OK - that needs some thoughts. I think the easiest woudl be to avoid "forwarding" the comparison if it has EH. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [11/12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz ` (3 preceding siblings ...) 2022-02-09 7:41 ` rguenth at gcc dot gnu.org @ 2022-02-09 9:07 ` cvs-commit at gcc dot gnu.org 2022-03-28 11:06 ` [Bug tree-optimization/104450] [11 " marxin at gcc dot gnu.org ` (3 subsequent siblings) 8 siblings, 0 replies; 10+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2022-02-09 9:07 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 --- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>: https://gcc.gnu.org/g:871afdc512be0510cbd4fa0928e5a1bd0681766e commit r12-7123-g871afdc512be0510cbd4fa0928e5a1bd0681766e Author: Richard Biener <rguenther@suse.de> Date: Wed Feb 9 09:11:28 2022 +0100 middle-end/104450 - ISEL and non-call EH The following avoids merging a vector compare with EH with a VEC_COND_EXPR. We should be able to do fallback expansion and if we really are for the optimization we need quite some shuffling to arrange for the proper EH redirection in all cases, IMHO not worth it. 2022-02-09 Richard Biener <rguenther@suse.de> PR middle-end/104450 * gimple-isel.cc: Pass cfun around. (+gimple_expand_vec_cond_expr): Do not combine a throwing comparison with the select. * g++.dg/torture/pr104450.C: New testcase. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [11 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz ` (4 preceding siblings ...) 2022-02-09 9:07 ` cvs-commit at gcc dot gnu.org @ 2022-03-28 11:06 ` marxin at gcc dot gnu.org 2022-04-21 7:51 ` rguenth at gcc dot gnu.org ` (2 subsequent siblings) 8 siblings, 0 replies; 10+ messages in thread From: marxin at gcc dot gnu.org @ 2022-03-28 11:06 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|needs-bisection | CC| |marxin at gcc dot gnu.org --- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> --- Btw. started with r11-1645-ga8d8caca0cbfde03. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [11 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz ` (5 preceding siblings ...) 2022-03-28 11:06 ` [Bug tree-optimization/104450] [11 " marxin at gcc dot gnu.org @ 2022-04-21 7:51 ` rguenth at gcc dot gnu.org 2023-04-17 10:44 ` cvs-commit at gcc dot gnu.org 2023-04-17 10:46 ` rguenth at gcc dot gnu.org 8 siblings, 0 replies; 10+ messages in thread From: rguenth at gcc dot gnu.org @ 2022-04-21 7:51 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|11.3 |11.4 --- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- GCC 11.3 is being released, retargeting bugs to GCC 11.4. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [11 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz ` (6 preceding siblings ...) 2022-04-21 7:51 ` rguenth at gcc dot gnu.org @ 2023-04-17 10:44 ` cvs-commit at gcc dot gnu.org 2023-04-17 10:46 ` rguenth at gcc dot gnu.org 8 siblings, 0 replies; 10+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2023-04-17 10:44 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 --- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-11 branch has been updated by Richard Biener <rguenth@gcc.gnu.org>: https://gcc.gnu.org/g:9dcc5d68cd935c9ff0ef023fe8b3bd7ab67d0687 commit r11-10630-g9dcc5d68cd935c9ff0ef023fe8b3bd7ab67d0687 Author: Richard Biener <rguenther@suse.de> Date: Wed Feb 9 09:11:28 2022 +0100 middle-end/104450 - ISEL and non-call EH The following avoids merging a vector compare with EH with a VEC_COND_EXPR. We should be able to do fallback expansion and if we really are for the optimization we need quite some shuffling to arrange for the proper EH redirection in all cases, IMHO not worth it. 2022-02-09 Richard Biener <rguenther@suse.de> PR middle-end/104450 * gimple-isel.cc: Pass cfun around. (+gimple_expand_vec_cond_expr): Do not combine a throwing comparison with the select. * g++.dg/torture/pr104450.C: New testcase. (cherry picked from commit 871afdc512be0510cbd4fa0928e5a1bd0681766e) ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug tree-optimization/104450] [11 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz ` (7 preceding siblings ...) 2023-04-17 10:44 ` cvs-commit at gcc dot gnu.org @ 2023-04-17 10:46 ` rguenth at gcc dot gnu.org 8 siblings, 0 replies; 10+ messages in thread From: rguenth at gcc dot gnu.org @ 2023-04-17 10:46 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104450 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |11.3.0 Known to work| |11.3.1 Resolution|--- |FIXED Status|ASSIGNED |RESOLVED --- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- Fixed. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-04-17 10:46 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-02-08 20:21 [Bug middle-end/104450] New: [12 Regression] ICE: verify_flow_info failed: BB 2 cannot throw but has an EH edge with -O -fnon-call-exceptions -fsanitize=thread -mavx512f zsojka at seznam dot cz 2022-02-08 21:07 ` [Bug tree-optimization/104450] " pinskia at gcc dot gnu.org 2022-02-08 21:14 ` pinskia at gcc dot gnu.org 2022-02-09 0:28 ` [Bug tree-optimization/104450] [11/12 " pinskia at gcc dot gnu.org 2022-02-09 7:41 ` rguenth at gcc dot gnu.org 2022-02-09 9:07 ` cvs-commit at gcc dot gnu.org 2022-03-28 11:06 ` [Bug tree-optimization/104450] [11 " marxin at gcc dot gnu.org 2022-04-21 7:51 ` rguenth at gcc dot gnu.org 2023-04-17 10:44 ` cvs-commit at gcc dot gnu.org 2023-04-17 10:46 ` rguenth at gcc dot gnu.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).