Bug 2292501
Summary: | internal compiler error, zxing-cpp build failed only on s390x with python 3.13 mass rebuild | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Felix Wang <topazus> | ||||
Component: | gcc | Assignee: | Jakub Jelinek <jakub> | ||||
Status: | NEW --- | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | 42 | CC: | dan, dmalcolm, fweimer, jakub, jlaw, josmyers, jwakely, mcermak, mhroncok, mpolacek, msebor, nickc, nixuser, sipoyare, susi.lehtola | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | gcc-14.1.1-6.fc41 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | Type: | --- | |||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 467765, 2292021, 2292025 | ||||||
Attachments: |
|
Description
Felix Wang
2024-06-15 14:47:46 UTC
Created attachment 2037550 [details]
preprocessed sources
minimal command to reproduce the issue is
/usr/libexec/gcc/s390x-redhat-linux/14/cc1plus -O2 -ffloat-store -march=z13 PerspectiveTransform.i
with gcc-14.1.1-5.fc40.s390x
and it looks to me the condition to expose the ICE is -O2 AND -ffloat-store AND -march >= z13
/home/sharkcz/zxing-cpp/zxing-cpp-2.0.0/core/src/PerspectiveTransform.cpp: In member function ‘ZXing::PointF ZXing::PerspectiveTransform::operator()(ZXing::PointF) const’:
/home/sharkcz/zxing-cpp/zxing-cpp-2.0.0/core/src/PerspectiveTransform.cpp:79:1: error: unrecognizable insn:
79 | }
| ^
(insn 16 15 17 2 (set (reg:V2DF 70 [ vect_p_x_26.114_35 ])
(vec_duplicate:V2DF (vec_select:DF (mem/c:V2DF (reg/f:DI 69) [4 vect_p_x_26.113+0 S16 A64])
(parallel [
(const_int 0 [0])
])))) -1
(nil))
Breakpoint 1, internal_error (gmsgid=gmsgid@entry=0x27b4ce2 "in %s, at %s:%d") at ../../gcc/diagnostic.cc:2384
2384 global_dc->begin_group ();
(gdb) where
#0 internal_error (gmsgid=gmsgid@entry=0x27b4ce2 "in %s, at %s:%d") at ../../gcc/diagnostic.cc:2384
#1 0x00000000016c8324 in fancy_abort (file=<optimized out>, line=2812, function=0x272919e "extract_insn") at ../../gcc/diagnostic.cc:2353
#2 0x00000000013b1806 in _fatal_insn (msgid=msgid@entry=0x27291e0 "unrecognizable insn:", insn=0x3fff49f3ec0, file=0x27266f0 "../../gcc/recog.cc", line=2812,
function=function@entry=0x272919e "extract_insn") at ../../gcc/rtl-error.cc:108
#3 0x00000000013b183a in _fatal_insn_not_found (insn=<optimized out>, file=<optimized out>, line=<optimized out>, function=0x272919e "extract_insn") at ../../gcc/rtl-error.cc:116
#4 0x0000000001d40518 in extract_insn (insn=insn@entry=0x3fff49f3ec0) at ../../gcc/recog.cc:2812
#5 0x0000000001d3ea30 in instantiate_virtual_regs_in_insn (insn=<optimized out>) at ../../gcc/function.cc:1612
#6 instantiate_virtual_regs () at ../../gcc/function.cc:1995
#7 (anonymous namespace)::pass_instantiate_virtual_regs::execute (this=this@entry=0x2ab0560) at ../../gcc/function.cc:2042
#8 0x00000000017b3258 in execute_one_pass (pass=0x2ab0560) at ../../gcc/passes.cc:2647
#9 0x00000000018e998a in execute_pass_list_1 (pass=0x2ab0560) at ../../gcc/passes.cc:2756
#10 execute_pass_list_1 (pass=0x2ab0500) at ../../gcc/passes.cc:2757
#11 0x00000000018e8b02 in execute_pass_list (fn=<optimized out>, pass=<optimized out>) at ../../gcc/passes.cc:2767
#12 0x0000000001832cd4 in cgraph_node::expand (this=0x3fff530f440) at ../../gcc/cgraphunit.cc:1845
#13 0x0000000002108006 in expand_all_functions () at ../../gcc/cgraphunit.cc:2028
#14 symbol_table::compile (this=0x3fff786e000) at ../../gcc/cgraphunit.cc:2404
#15 0x0000000002117444 in symbol_table::finalize_compilation_unit (this=0x3fff786e000) at ../../gcc/cgraphunit.cc:2589
#16 0x00000000020d7354 in compile_file () at ../../gcc/toplev.cc:479
#17 0x000000000206cdf8 in do_compile () at ../../gcc/toplev.cc:2157
#18 toplev::main (this=this@entry=0x3ffffff9e7e, argc=<optimized out>, argv=<optimized out>) at ../../gcc/toplev.cc:2315
#19 0x000000000206be84 in main (argc=<optimized out>, argv=<optimized out>) at ../../gcc/main.cc:39
minimized testcase using cvise --- /home/sharkcz/zxing-cpp/zxing-cpp-2.0.0/redhat-linux-build/testcase.i --- template <typename T> struct PointT { T x, y; }; using PointF = PointT<double>; namespace std { class PerspectiveTransform { PointF operator()(PointF) const; }; PointF PerspectiveTransform::operator()(PointF p) const { auto denominator = p.y; return {0 / denominator, p.x / denominator}; } } // namespace std Even more reduced: /* { dg-do compile } */ /* { dg-options "-O2 -ffloat-store -march=z13" } */ typedef double V __attribute__((vector_size (16))); typedef long W __attribute__((vector_size (16))); V foo (V x) { return __builtin_shuffle (x, (W) { 1, 1 }); } Doesn't ICE on the trunk. https://gcc.gnu.org/r15-1129 aka https://gcc.gnu.org/pipermail/gcc-patches/2024-June/654028.html fixed this on the trunk (but hasn't been backported yet). Note, there is https://gcc.gnu.org/r15-1344 follow-up needed for it and the question what to do with the test on s390 in case testing is done on pre-z14 hw. *** Bug 2293207 has been marked as a duplicate of this bug. *** zxing-cpp builds again with gcc-14.1.1-6.fc41, see https://koji.fedoraproject.org/koji/taskinfo?taskID=119394297 This bug appears to have been reported against 'rawhide' during the Fedora Linux 42 development cycle. Changing version to 42. |