[Bug rtl-optimization/60141] ICE in i386.c distance_non_agu_define_in_bb
tejohnson at google dot com
gcc-bugzilla@gcc.gnu.org
Thu Feb 13 17:23:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60141
--- Comment #1 from Teresa Johnson <tejohnson at google dot com> ---
This appears to have been exposed, not caused, by the change to the
pass ordering. It is in fact a duplicate of PR middle-end/43631, which
was fixed on trunk by r197994 on 4/15/13. I will backport the fix to
google-4_8.
Teresa
On Mon, Feb 10, 2014 at 4:49 PM, shenhan at google dot com
<gcc-bugzilla@gcc.gnu.org> wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60141
>
> Bug ID: 60141
> Summary: ICE in i386.c distance_non_agu_define_in_bb
> Product: gcc
> Version: 4.8.3
> Status: UNCONFIRMED
> Severity: normal
> Priority: P3
> Component: rtl-optimization
> Assignee: unassigned at gcc dot gnu.org
> Reporter: shenhan at google dot com
> CC: llozano at google dot com, tejohnson at google dot com
>
> This only fails for google/gcc-4_8
>
> To reproduce -
> configure:
> ~/gcc.git/configure --disable-bootstrap --enable-languages='c,c++'
> --disable-multilib --disable-libatomic --disable-libmudflap
> --disable-libssp --enable-libgomp --enable-__cxa_atexit
> --enable-checking=release --disable-libquadmath --disable-libitm
> --enable-esp --with-arch=atom --with-tune=atom --enable-frame-pointer
> Build -
> make -j40
> Compile a testcase -
> ./gcc/xgcc -B./gcc -g -O2 -fpic -c -m32 ~/SROA.pp.cpp
> Output -
> SROA.cpp: In member function ‘void
> {anonymous}::AllocaPartitioning::UseBuilder::operator()()’:
> SROA.cpp:873:3: internal compiler error: Segmentation fault
> 0x8d0baf crash_signal
> ../../../gcc.git/gcc/toplev.c:346
> 0xa798c8 distance_non_agu_define_in_bb
> ../../../gcc.git/gcc/config/i386/i386.c:17506
> 0xa79cad distance_non_agu_define
> ../../../gcc.git/gcc/config/i386/i386.c:17564
> 0xa79cad ix86_lea_outperforms
> ../../../gcc.git/gcc/config/i386/i386.c:17730
> 0xb8e6ca output_89
> ../../../gcc.git/gcc/config/i386/i386.md:2152
> 0x72a5c3 final_scan_insn(rtx_def*, _IO_FILE*, int, int, int*)
> ../../../gcc.git/gcc/final.c:2895
> 0x72ae84 final(rtx_def*, _IO_FILE*, int)
> ../../../gcc.git/gcc/final.c:1986
> 0x72b46d rest_of_handle_final
> ../../../gcc.git/gcc/final.c:4432
> Please submit a full bug report,
> with preprocessed source if appropriate.
> Please include the complete backtrace with any bug report.
> See <http://gcc.gnu.org/bugs.html> for instructions.
>
> Debugging shows that in distance_non_agu_define_in_bb (i386.c),
> BLOCK_FOR_INSN(start) returns zero, which caused this ICE.
>
> A preliminary bisecting in google/gcc-4_8 shows that the follow CL introduces
> this ICE. (So I cc'ed Teresa Johnson)
>
>
> commit 907fca49eae2da51a328eb192c691cc24f69e6af
> Author: tejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>
> Date: Mon Dec 2 18:28:19 2013 +0000
>
> Backport the last few fixes for -freorder-blocks-and-partition from
> trunk to google/4_8: r204985, r205057 and r205243
>
> ------------------------------------------------------------------------
> r204985 | tejohnson | 2013-11-18 14:38:51 -0800 (Mon, 18 Nov 2013) | 15
> lines
>
> This patch fixes an lto profiledbootstrap failure with
> -freorder-blocks-and-partition enabled. Currently compgotos
> is the only pass that goes into cfglayout mode after bb reordering,
> which is undesireable (and in the case of
> -freorder-blocks-and-partition
> can cause illegal partitioning) because of the optimizations performed
> on the cfg when going into cfglayout mode. Moved compgoto before
> bb reordering to avoid these problems.
>
> 2013-11-18 Teresa Johnson <tejohnson@google.com>
>
> * gcc/cfgrtl.c (cfg_layout_initialize): Assert if we
> try to go into cfglayout after bb reordering.
> * gcc/passes.def: Move compgotos before bb reordering
> since it goes into cfglayout.
>
> ------------------------------------------------------------------------
> ------------------------------------------------------------------------
> r205057 | tmsriram | 2013-11-19 14:12:21 -0800 (Tue, 19 Nov 2013) | 7
> lines
>
> Emit a label for the split cold function part. Label name is formed by
> suffixing the original function name with "cold".
>
> Patch tested for bootstrap on all default languages on x86_64 and
> regression testsuite checked for parity with RUNTESTFLAGS -m32 and m64.
>
> 2013-11-19 Sriraman Tallam <tmsriram@google.com>
>
> * final.c (final_scan_insn): Emit a label for the split
> cold function part. Label name is formed by suffixing
> the original function name with "cold".
>
> 2013-11-19 Sriraman Tallam <tmsriram@google.com>
>
> * gcc.dg/tree-prof/cold_partition_label.c: New testcase.
>
> ------------------------------------------------------------------------
> ------------------------------------------------------------------------
> r205243 | tejohnson | 2013-11-21 20:16:47 -0800 (Thu, 21 Nov 2013) | 6
> lines
>
> 2013-11-21 Teresa Johnson <tejohnson@google.com>
>
> * cfgcleanup.c (outgoing_edges_match): Walk up past note instructions
> not understood by old_insns_match_p.
>
> ------------------------------------------------------------------------
>
>
> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/google/gcc-4_8@205594
> 138bc75d-0d04-0410-961f-82ee72b054a4
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.
More information about the Gcc-bugs
mailing list