public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO
@ 2012-06-21  9:15 ioctl at yandex dot ru
  2012-06-21  9:16 ` [Bug c++/53743] " ioctl at yandex dot ru
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: ioctl at yandex dot ru @ 2012-06-21  9:15 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

             Bug #: 53743
           Summary: ICE when compiling firefox with PGO and LTO
    Classification: Unclassified
           Product: gcc
           Version: 4.7.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: ioctl@yandex.ru


Created attachment 27680
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27680
Preprocessed source 1

$ LANG=C c++ -c -fPIC  -fno-rtti -march=prescott -mtune=prescott -mfpmath=sse
-msse2 -msse3 -O2 -fstack-protector --param=ssp-buffer-size=4 -flto
-fuse-linker-plugin -freorder-blocks-and-partition -fno-exceptions
-fno-strict-aliasing -std=gnu++0x -pthread -g -fprofile-use
-fprofile-correction -O3 -fomit-frame-pointer nsSubstring.cpp

...

nsTSubstring.cpp:618:3: internal compiler error: in cfg_layout_merge_blocks, at
cfgrtl.c:2838
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://bugs.archlinux.org/> for instructions.

When building without profile data usage, all OK.

The same problem appears for another source file (I will attach it too).


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
@ 2012-06-21  9:16 ` ioctl at yandex dot ru
  2012-06-21  9:17 ` ioctl at yandex dot ru
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ioctl at yandex dot ru @ 2012-06-21  9:16 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #1 from ioctl at yandex dot ru 2012-06-21 09:15:54 UTC ---
Created attachment 27681
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27681
Profile data 1


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
  2012-06-21  9:16 ` [Bug c++/53743] " ioctl at yandex dot ru
@ 2012-06-21  9:17 ` ioctl at yandex dot ru
  2012-06-21  9:20 ` ioctl at yandex dot ru
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ioctl at yandex dot ru @ 2012-06-21  9:17 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #2 from ioctl at yandex dot ru 2012-06-21 09:17:34 UTC ---
Created attachment 27682
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27682
full gcc -v   output


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
  2012-06-21  9:16 ` [Bug c++/53743] " ioctl at yandex dot ru
  2012-06-21  9:17 ` ioctl at yandex dot ru
@ 2012-06-21  9:20 ` ioctl at yandex dot ru
  2012-06-21  9:21 ` ioctl at yandex dot ru
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ioctl at yandex dot ru @ 2012-06-21  9:20 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #3 from ioctl at yandex dot ru 2012-06-21 09:19:51 UTC ---
Created attachment 27683
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27683
Preprocessed source 2


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
                   ` (2 preceding siblings ...)
  2012-06-21  9:20 ` ioctl at yandex dot ru
@ 2012-06-21  9:21 ` ioctl at yandex dot ru
  2012-06-21  9:23 ` ioctl at yandex dot ru
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ioctl at yandex dot ru @ 2012-06-21  9:21 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #4 from ioctl at yandex dot ru 2012-06-21 09:21:16 UTC ---
Created attachment 27684
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27684
Profile data 2


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
                   ` (3 preceding siblings ...)
  2012-06-21  9:21 ` ioctl at yandex dot ru
@ 2012-06-21  9:23 ` ioctl at yandex dot ru
  2012-06-21  9:47 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ioctl at yandex dot ru @ 2012-06-21  9:23 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #5 from ioctl at yandex dot ru 2012-06-21 09:23:18 UTC ---
Created attachment 27685
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27685
full gcc -v   output for source 2


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
                   ` (4 preceding siblings ...)
  2012-06-21  9:23 ` ioctl at yandex dot ru
@ 2012-06-21  9:47 ` rguenth at gcc dot gnu.org
  2012-06-21 12:14 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-06-21  9:47 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #6 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-06-21 09:47:20 UTC ---
Confirmed on input1 with

> /space/rguenther/install/gcc-4.7.1/bin/g++ -c t.ii -freorder-blocks-and-partition -fno-exceptions -std=gnu++0x  -fprofile-use -fprofile-correction -O2 -m32   

removing -freorder-blocks-and-partition causes the bug to vanish.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
                   ` (5 preceding siblings ...)
  2012-06-21  9:47 ` rguenth at gcc dot gnu.org
@ 2012-06-21 12:14 ` rguenth at gcc dot gnu.org
  2013-11-22 23:51 ` tejohnson at gcc dot gnu.org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-06-21 12:14 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot
                   |                            |gnu.org, rth at gcc dot
                   |                            |gnu.org

--- Comment #7 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-06-21 12:13:57 UTC ---
With checking enabled on the top of the branch I get

/home/ioctl/ff-build-semilto/src/mozilla-release/xpcom/string/src/nsSubstring.cpp:
In member function 'void
nsACString_internal::Replace(nsACString_internal::index_type,
nsACString_internal::size_type, const char_type*,
nsACString_internal::size_type)':
/home/ioctl/ff-build-semilto/src/mozilla-release/xpcom/string/src/nsSubstring.cpp:339:104:
note: correcting inconsistent profile data
In file included from
/home/ioctl/ff-build-semilto/src/mozilla-release/xpcom/string/src/nsSubstring.cpp:325:0:
/home/ioctl/ff-build-semilto/src/mozilla-release/xpcom/string/src/nsTSubstring.cpp:
In member function 'bool nsAString_internal::Equals(const char_type*) const':
/home/ioctl/ff-build-semilto/src/mozilla-release/xpcom/string/src/nsTSubstring.cpp:618:3:
error: EDGE_CROSSING incorrectly set across same section
/home/ioctl/ff-build-semilto/src/mozilla-release/xpcom/string/src/nsTSubstring.cpp:618:3:
error: missing barrier after block 5

Breakpoint 1, internal_error (gmsgid=0x171fe90 "verify_flow_info failed")
    at /space/rguenther/src/svn/gcc-4_7-branch/gcc/diagnostic.c:843
843       va_start (ap, gmsgid);

(gdb) p *pass
$1 = {type = RTL_PASS, name = 0x1743680 "pro_and_epilogue", gate = 0x0, 
  execute = 0xbc939f <rest_of_handle_thread_prologue_and_epilogue>, sub = 0x0, 
  next = 0x1d53d80 <pass_rtl_dse2>, static_pass_number = 209, 
  tv_id = TV_THREAD_PROLOGUE_AND_EPILOGUE, properties_required = 0, 
  properties_provided = 0, properties_destroyed = 0, 
  todo_flags_start = 524296, todo_flags_finish = 394242}


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
                   ` (6 preceding siblings ...)
  2012-06-21 12:14 ` rguenth at gcc dot gnu.org
@ 2013-11-22 23:51 ` tejohnson at gcc dot gnu.org
  2015-03-25 17:01 ` paolo.carlini at oracle dot com
  2015-03-31 13:54 ` ioctl at yandex dot ru
  9 siblings, 0 replies; 11+ messages in thread
From: tejohnson at gcc dot gnu.org @ 2013-11-22 23:51 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #8 from tejohnson at gcc dot gnu.org ---
Author: tejohnson
Date: Fri Nov 22 23:51:45 2013
New Revision: 205293

URL: http://gcc.gnu.org/viewcvs?rev=205293&root=gcc&view=rev
Log:
Backport first few sets of -freorder-blocks-and-partition fixes from trunk
(r198934, r198982, r199744).

------------------------------------------------------------------------
r198934 | tejohnson | 2013-05-15 07:14:15 -0700 (Wed, 15 May 2013) | 16 lines
Changed paths:
   M /trunk/gcc/ChangeLog
   M /trunk/gcc/bb-reorder.c
   M /trunk/gcc/cfgcleanup.c
   M /trunk/gcc/cfgrtl.c
   M /trunk/gcc/function.h

2013-05-15  Teresa Johnson  <tejohnson@google.com>

    * function.h (has_bb_partition): New rtl_data flag.
        (bb_reorder_complete): Ditto.
    * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
        instead of flag_reorder_blocks_and_partition.
        * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
        with some enhancements.
        (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
    * bb-reorder.c (connect_traces): Check for has_bb_partition
        instead of flag_reorder_blocks_and_partition.
    (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
    (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
        verify_hot_cold_block_grouping.
    (partition_hot_cold_basic_blocks): Set has_bb_partition.

------------------------------------------------------------------------
------------------------------------------------------------------------
r198982 | tejohnson | 2013-05-16 10:45:35 -0700 (Thu, 16 May 2013) | 12 lines
Changed paths:
   M /trunk/gcc/ChangeLog
   M /trunk/gcc/cfgrtl.c

2013-05-16  Teresa Johnson  <tejohnson@google.com>

    * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
    (rtl_verify_edges): New function.
    (rtl_verify_bb_insns): Ditto.
    (rtl_verify_bb_pointers): Ditto.
    (rtl_verify_bb_insn_chain): Ditto.
    (rtl_verify_fallthru): Ditto.
    (rtl_verify_bb_layout): Ditto.
    (rtl_verify_flow_info_1): Outline checks into new functions.
    (rtl_verify_flow_info): Ditto.

------------------------------------------------------------------------
------------------------------------------------------------------------
r199744 | tejohnson | 2013-06-06 09:30:07 -0700 (Thu, 06 Jun 2013) | 64 lines
Changed paths:
   M /trunk/gcc/ChangeLog
   M /trunk/gcc/Makefile.in
   M /trunk/gcc/basic-block.h
   M /trunk/gcc/bb-reorder.c
   M /trunk/gcc/bb-reorder.h
   M /trunk/gcc/cfgcleanup.c
   M /trunk/gcc/cfgrtl.c
   M /trunk/gcc/emit-rtl.c
   M /trunk/gcc/function.c
   M /trunk/gcc/ifcvt.c
   M /trunk/gcc/testsuite/ChangeLog
   M /trunk/gcc/testsuite/g++.dg/tree-prof/partition2.C
   M /trunk/gcc/testsuite/g++.dg/tree-prof/partition3.C
   A /trunk/gcc/testsuite/gcc.dg/tree-prof/20041218-1.c
   A /trunk/gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c
   M /trunk/gcc/testsuite/gcc.dg/tree-prof/pr45354.c
   M /trunk/gcc/testsuite/gcc.dg/tree-prof/pr50907.c
   M /trunk/gcc/testsuite/gcc.dg/tree-prof/pr52027.c
   A /trunk/gcc/testsuite/gcc.dg/tree-prof/va-arg-pack-1.c

2013-06-06  Teresa Johnson  <tejohnson@google.com>

    PR c++/53743
    * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
    as this is now done by redirect_edge_and_branch_force.
    * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
    barriers, and fix interaction with splitting.
    * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
    * cfgcleanup.c (try_forward_edges): Fix early return value to properly
    reflect changes made in the routine.
    * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
    (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
    since this is called in cfglayout mode, and replace partition fixup
    with assert as that is now done by force_nonfallthru_and_redirect.
    (add_reg_crossing_jump_notes): Handle the fact that some jumps may
    already be marked with region crossing note.
    (insert_section_boundary_note): Make non-static, gate on flag
    has_bb_partition, rewrite to also check for multiple partitions.
    (rest_of_handle_reorder_blocks): Remove call to
    insert_section_boundary_note, now done later during free_cfg.
    (duplicate_computed_gotos): Don't duplicate partition crossing edge.
    * bb-reorder.h (insert_section_boundary_note): Declare.
    * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
    * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
    invoke insert_section_boundary_note.
    (try_redirect_by_replacing_jump): Remove unnecessary
    check for region crossing note.
    (fixup_partition_crossing): New function.
    (rtl_redirect_edge_and_branch): Fixup partition boundaries.
    (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
    in non-cfglayout mode.
    (force_nonfallthru_and_redirect): Fixup partition boundaries,
    remove old code that tried to do this. Emit barrier correctly
    when we are in cfglayout mode.
    (last_bb_in_partition): New function.
    (rtl_split_edge): Correctly fixup partition boundaries.
    (commit_one_edge_insertion): Remove old code that tried to
    fixup region crossing edge since this is now handled in
    split_block, and set up insertion point correctly since
    block may now end in a jump.
    (verify_hot_cold_block_grouping): Guard against checking when not in
    linearized RTL mode.
    (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
    notes.
    (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
    rtl_verify_flow_info, so not called in cfglayout mode.
    (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
    (fixup_reorder_chain): Remove old code that attempted to fixup region
    crossing note as this is now handled in force_nonfallthru_and_redirect.
    (duplicate_insn_chain): Don't duplicate switch section notes.
    (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
    note.
    * basic-block.h (emit_barrier_after_bb): Declare.

    * testsuite/gcc.dg/tree-prof/va-arg-pack-1.c: Cloned from c-torture, made
    into -freorder-blocks-and-partition test.
    * testsuite/gcc.dg/tree-prof/comp-goto-1.c: Ditto.
    * testsuite/gcc.dg/tree-prof/20041218-1.c: Ditto.
    * testsuite/gcc.dg/tree-prof/pr52027.c: Use -O2.
    * testsuite/gcc.dg/tree-prof/pr50907.c: Ditto.
    * testsuite/gcc.dg/tree-prof/pr45354.c: Ditto.
    * testsuite/g++.dg/tree-prof/partition2.C: Ditto.
    * testsuite/g++.dg/tree-prof/partition3.C: Ditto.

------------------------------------------------------------------------

Added:
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/20041218-1.c
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/comp-goto-1.c
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/va-arg-pack-1.c
Modified:
    branches/google/gcc-4_8/gcc/Makefile.in
    branches/google/gcc-4_8/gcc/basic-block.h
    branches/google/gcc-4_8/gcc/bb-reorder.c
    branches/google/gcc-4_8/gcc/bb-reorder.h
    branches/google/gcc-4_8/gcc/cfgcleanup.c
    branches/google/gcc-4_8/gcc/cfgrtl.c
    branches/google/gcc-4_8/gcc/emit-rtl.c
    branches/google/gcc-4_8/gcc/function.c
    branches/google/gcc-4_8/gcc/function.h
    branches/google/gcc-4_8/gcc/ifcvt.c
    branches/google/gcc-4_8/gcc/testsuite/g++.dg/tree-prof/partition2.C
    branches/google/gcc-4_8/gcc/testsuite/g++.dg/tree-prof/partition3.C
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/pr45354.c
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/pr50907.c
    branches/google/gcc-4_8/gcc/testsuite/gcc.dg/tree-prof/pr52027.c


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
                   ` (7 preceding siblings ...)
  2013-11-22 23:51 ` tejohnson at gcc dot gnu.org
@ 2015-03-25 17:01 ` paolo.carlini at oracle dot com
  2015-03-31 13:54 ` ioctl at yandex dot ru
  9 siblings, 0 replies; 11+ messages in thread
From: paolo.carlini at oracle dot com @ 2015-03-25 17:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #9 from Paolo Carlini <paolo.carlini at oracle dot com> ---
Is this still an issue?


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug c++/53743] ICE when compiling firefox with PGO and LTO
  2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
                   ` (8 preceding siblings ...)
  2015-03-25 17:01 ` paolo.carlini at oracle dot com
@ 2015-03-31 13:54 ` ioctl at yandex dot ru
  9 siblings, 0 replies; 11+ messages in thread
From: ioctl at yandex dot ru @ 2015-03-31 13:54 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53743

--- Comment #10 from ioctl at yandex dot ru ---
Unfortunately I cannot check this problem existance using last gcc versions due
to a large number compilation errors in another files.


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-03-31 13:16 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-21  9:15 [Bug c++/53743] New: ICE when compiling firefox with PGO and LTO ioctl at yandex dot ru
2012-06-21  9:16 ` [Bug c++/53743] " ioctl at yandex dot ru
2012-06-21  9:17 ` ioctl at yandex dot ru
2012-06-21  9:20 ` ioctl at yandex dot ru
2012-06-21  9:21 ` ioctl at yandex dot ru
2012-06-21  9:23 ` ioctl at yandex dot ru
2012-06-21  9:47 ` rguenth at gcc dot gnu.org
2012-06-21 12:14 ` rguenth at gcc dot gnu.org
2013-11-22 23:51 ` tejohnson at gcc dot gnu.org
2015-03-25 17:01 ` paolo.carlini at oracle dot com
2015-03-31 13:54 ` ioctl at yandex dot ru

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).