Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1546743
Summary: | gfortran internal compiler error when compiling cp2k-5.1 on ppc64le | ||||||
---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Dominik 'Rathann' Mierzejewski <dominik> | ||||
Component: | gcc | Assignee: | Jakub Jelinek <jakub> | ||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
Severity: | unspecified | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | 28 | CC: | aoliva, dan, davejohansen, dmalcolm, dominik, fweimer, fzatlouk, herrold, jakub, jwakely, law, mpolacek, msebor, nickc, sergio | ||||
Target Milestone: | --- | ||||||
Target Release: | --- | ||||||
Hardware: | ppc64le | ||||||
OS: | Unspecified | ||||||
URL: | https://koji.fedoraproject.org/koji/taskinfo?taskID=25158341 | ||||||
Whiteboard: | AcceptedFreezeException | ||||||
Fixed In Version: | gcc-8.0.1-0.19.fc28 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2018-03-26 22:30:36 UTC | Type: | Bug | ||||
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: | 1071880, 1469205, 1555681 | ||||||
Attachments: |
|
Description
Dominik 'Rathann' Mierzejewski
2018-02-19 13:48:31 UTC
Thanks. I'm working on capturing a self-contained reproducer. This bug appears to have been reported against 'rawhide' during the Fedora 28 development cycle. Changing version to '28'. Created attachment 1398473 [details]
Non-minimized reproducer
This ICEs when compiled with:
gfortran -c -O1 -fstack-protector-strong -m64 -mcpu=power8 -mtune=power8 test.F90 -L../obj/Linux-ppc64le-gfortran/ssmp -I../obj/Linux-ppc64le-gfortran/ssmp
...but needs e.g. ao_util.mod etc in those -L/-I locations to compile.
Jakub/Marek: is there an easy way to "bake" all of the modules used in a Fortran source file into one self-contained reproducer?
(gdb) bt #0 0x00000000107b5254 in fancy_abort (file=0x115f7ef8 "../../gcc/config/rs6000/rs6000.c", line=10361, function=0x115f6da0 <rs6000_emit_le_vsx_store(rtx_def*, rtx_def*, machine_mode)::__FUNCTION__> "rs6000_emit_le_vsx_store") at ../../gcc/diagnostic.c:1499 #1 0x00000000113c0c7c in rs6000_emit_le_vsx_store (dest=<optimized out>, source=<optimized out>, mode=<optimized out>) at ../../gcc/config/rs6000/rs6000.c:10372 #2 0x00000000113ff0cc in gen_movv4si (operand0=0x7fffef107a88, operand1=<optimized out>) at ../../gcc/config/rs6000/vector.md:142 #3 0x0000000010a8b2a0 in insn_gen_fn::operator() (this=<optimized out>, a1=<optimized out>, a0=0xa78) at ../../gcc/recog.h:301 #4 emit_move_ccmode (y=<optimized out>, x=<optimized out>, mode=<optimized out>) at ../../gcc/expr.c:3540 #5 emit_move_insn_1 (y=<optimized out>, x=0x7fffef107a88) at ../../gcc/expr.c:3680 #6 emit_move_insn (x=0x7fffef107a88, y=<optimized out>) at ../../gcc/expr.c:3757 #7 0x0000000010c0e42c in lra_emit_move (x=0x7fffef107a88, y=0x7fffef132370) at ../../gcc/lra.c:497 #8 0x0000000010c1967c in curr_insn_transform (check_only_p=false) at ../../gcc/lra-constraints.c:4285 #9 0x0000000010c16fb8 in lra_constraints (first_p=<optimized out>) at ../../gcc/lra-constraints.c:4871 #10 0x0000000010bfe334 in lra (f=<optimized out>) at ../../gcc/lra.c:2416 #11 0x0000000010b821f8 in do_reload () at ../../gcc/ira.c:5465 #12 (anonymous namespace)::pass_reload::execute (this=<optimized out>) at ../../gcc/ira.c:5649 #13 0x0000000010c582f0 in execute_one_pass (pass=0x11bf7450) at ../../gcc/passes.c:2497 #14 0x0000000010c5bb00 in execute_pass_list_1 (pass=0x11bf7450) at ../../gcc/passes.c:2586 #15 execute_pass_list_1 (pass=0x11bf6310) at ../../gcc/passes.c:2587 #16 execute_pass_list (fn=0x7fffee470420, pass=<optimized out>) at ../../gcc/passes.c:2597 #17 0x00000000112f5eec in cgraph_node::expand (this=0x7fffee4908a0) at ../../gcc/context.h:48 #18 expand_all_functions () at ../../gcc/cgraphunit.c:2275 #19 symbol_table::compile (this=0x7fffee2a0000) at ../../gcc/cgraphunit.c:2624 #20 0x000000001099fb10 in symbol_table::finalize_compilation_unit (this=0x7fffee2a0000) at ../../gcc/cgraphunit.c:2717 #21 0x00000000113746f4 in compile_file () at ../../gcc/toplev.c:481 #22 0x00000000107f6178 in do_compile () at ../../gcc/toplev.c:2133 #23 toplev::main (this=0x7fffffffe9d6, argc=<optimized out>, argv=<optimized out>) at ../../gcc/toplev.c:2268 #24 0x00000000107f81c4 in main (argc=<optimized out>, argv=0x7fffffffedf8) at ../../gcc/main.c:39 It's hitting this assertion: void rs6000_emit_le_vsx_store (rtx dest, rtx source, machine_mode mode) { /* This should never be called during or after LRA, because it does not re-permute the source register. It is intended only for use during expand. */ gcc_assert (!lra_in_progress && !reload_completed); called from here in vector.md line 142: ;; Vector move instructions. Little-endian VSX loads and stores require ;; special handling to circumvent "element endianness." (define_expand "mov<mode>" [(set (match_operand:VEC_M 0 "nonimmediate_operand" "") (match_operand:VEC_M 1 "any_operand" ""))] "VECTOR_MEM_ALTIVEC_OR_VSX_P (<MODE>mode)" { if (can_create_pseudo_p ()) { if (CONSTANT_P (operands[1])) { if (FLOAT128_VECTOR_P (<MODE>mode)) { if (!easy_fp_constant (operands[1], <MODE>mode)) operands[1] = force_const_mem (<MODE>mode, operands[1]); } else if (!easy_vector_constant (operands[1], <MODE>mode)) operands[1] = force_const_mem (<MODE>mode, operands[1]); } if (!vlogical_operand (operands[0], <MODE>mode) && !vlogical_operand (operands[1], <MODE>mode)) operands[1] = force_reg (<MODE>mode, operands[1]); } if (!BYTES_BIG_ENDIAN && VECTOR_MEM_VSX_P (<MODE>mode) && !TARGET_P9_VECTOR && !gpr_or_gpr_p (operands[0], operands[1]) && (memory_operand (operands[0], <MODE>mode) ^ memory_operand (operands[1], <MODE>mode))) { rs6000_emit_le_vsx_move (operands[0], operands[1], <MODE>mode); DONE; } }) (In reply to Dave Malcolm from comment #3) > Jakub/Marek: is there an easy way to "bake" all of the modules used in a > Fortran source file into one self-contained reproducer? (In reply to Dave Malcolm from comment #5) > (In reply to Dave Malcolm from comment #3) > > Jakub/Marek: is there an easy way to "bake" all of the modules used in a > > Fortran source file into one self-contained reproducer? No. Which is why I'm quite afraid of C++ modules too. Reducing now. Upstream bug was fixed in r258251 on 2018-03-05; that fix is not yet in our rpms (which I believe are currently are using the 2018-02-22 tarball). Does gcc-8.0.1-0.17 or later fix this for you? Scratch build [1] with gcc-8.0.1-0.18.fc29 succeeded, thank you very much! [1] https://koji.fedoraproject.org/koji/taskinfo?taskID=25721063 When can we have this in F28? gcc-8.0.1-0.18.fc28 (or indeed -0.17) ought to fix this, and it's been built in Koji for Fedora 28: https://koji.fedoraproject.org/koji/buildinfo?buildID=1057492 I don't know what the status of this being in the Fedora 28 build root is (and the procedure for doing so). I've requested a buildroot override for now: https://bodhi.fedoraproject.org/overrides/gcc-8.0.1-0.18.fc28 , but to get it into the buildroot permanently during the current beta freeze, you have to submit it as an update and nominate for freeze exception: https://qa.fedoraproject.org/blockerbugs/propose_bug (https://fedoraproject.org/wiki/QA:SOP_freeze_exception_bug_process). please add gcc package to bodhi updates , FYI I already asked the same in bug #1554279 Proposed as a Freeze Exception for 28-beta by Fedora user sergiomb using the blocker tracking app because: gcc fixes Discussed during blocker review [1]: AcceptedFreezeException (Beta) - accepted on the same principle as the annobin bug (1557511) - buildroot/compose consistency [1] https://meetbot-raw.fedoraproject.org/fedora-meeting-1/2018-03-22/ gcc-8.0.1-0.19.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-4ed9ddeead gcc-8.0.1-0.19.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-4ed9ddeead gcc-8.0.1-0.19.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report. |