[Bug rtl-optimization/78614] [7 Regression] ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78614 Jakub Jelinek changed: What|Removed |Added CC||amodra at gcc dot gnu.org --- Comment #5 from Jakub Jelinek --- Broken by r235913, before that it was starting with that copy_rtx. I think we should just restore it back. The if (repl || reg2) before add_reg_note also doesn't make sense to me, because if that is false, then if (!repl && !reg2) is true and we wouldn't be using different path (and nothing changes repl or reg2).
[Bug rtl-optimization/78614] [7 Regression] ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78614 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek --- This looks like a bug in rs6000_frame_related. It wants to add REG_FRAME_RELATED_EXPR note with the PATTERN with possibly some replacements in it. RTL sharing rules requires that no non-shareable rtl is shared in between those two spots. simplify_replace_rtx does not guarantee this, it only guarantees that the original expression is not modified. The rtxes containing anything that got changed will be copies, but if there are other expressions (other operands etc.), those are not copied. One option, perhaps wasting some memory, is to just use copy_rtx (pat) first, before + pat = copy_rtx (pat); if (GET_CODE (pat) == SET) then pat = shallow_copy_rtx (pat); XVEC (pat, 0) = shallow_copy_rtvec (XVEC (pat, 0)); is not necessary. Another one is that copy_rtx and just avoid using simplify_replace_rtx unless you really want to simplify - and instead just use rtl iterator to walk subexpressions and whenever you see reg or reg2 copy_rtx (repl) or copy_rtx (repl2) in there.
[Bug rtl-optimization/78614] [7 Regression] ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78614 Markus Trippelsdorf changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2016-11-30 Ever confirmed|0 |1 --- Comment #3 from Markus Trippelsdorf --- Jakub re-enabled RTL sharing verification in r243019. ppc64le is broken since then.
[Bug rtl-optimization/78614] [7 Regression] ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78614 Richard Biener changed: What|Removed |Added Version|unknown |7.0 Target Milestone|--- |7.0 --- Comment #2 from Richard Biener --- Probably older regression.
[Bug rtl-optimization/78614] [7 Regression] ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78614 --- Comment #1 from Martin Liška --- Or reproducible via a cross-compiler: $ ../configure --disable-bootstrap --enable-languages=c,c++,fortran --enable-valgrind-annotations --prefix=/home/marxin/bin/gcc3 --disable-multilib --disable-libsanitizer --target=powerpc64le-unknown-linux $ cat orig.ii double __extendkftf2___high_temp; void fn1 (__float128 value) { double __high, __low; __float128 __value = value; __low = __value - __high; __extendkftf2___high_temp = __low; } $ ./xgcc -B. orig.ii -c -O2 -mfloat128-type -mfloat128