public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/55740] New: [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it
@ 2012-12-19 14:18 rguenth at gcc dot gnu.org
  2012-12-19 14:19 ` [Bug middle-end/55740] " rguenth at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-19 14:18 UTC (permalink / raw)
  To: gcc-bugs


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

             Bug #: 55740
           Summary: [4.8 Regression] ICE in verify_loop_structure, at
                    cfgloop.c:1582, error: loop 2's header does not belong
                    directly to it
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: rguenth@gcc.gnu.org
            Target: i?86-*-*


Created attachment 29007
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29007
preprocessed source

/usr/lib/gcc/i586-suse-linux/4.8/cc1plus -fpreprocessed tDirectories.ii -quiet
-dumpbase tDirectories.cpp -mtune=generic -march=i586 -auxbase-strip
libtools_a-tDirectories.o -g -O2 -Wno-unused-local-typedefs -Wno-long-long
-version -fomit-frame-pointer -fmessage-length=0 -o tDirectories.s
GNU C++ (SUSE Linux) version 4.8.0 20121219 [trunk revision 194606]
(i586-suse-linux)
        compiled by GNU C version 4.8.0 20121219 [trunk revision 194606], GMP
version 5.0.5, MPFR version 3.1.1, MPC version 1.0
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C++ (SUSE Linux) version 4.8.0 20121219 [trunk revision 194606]
(i586-suse-linux)
        compiled by GNU C version 4.8.0 20121219 [trunk revision 194606], GMP
version 5.0.5, MPFR version 3.1.1, MPC version 1.0
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: b6dcf1d0957cadf0ad5b36e7839b8868
tools/tDirectories.cpp: In static member function 'static bool
tPath::IsValidPath(const char*)':
tools/tDirectories.cpp:346:1: error: loop 2's header does not belong directly
to it
 }
 ^
tools/tDirectories.cpp:346:1: internal compiler error: in
verify_loop_structure, at cfgloop.c:1582
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.


This is also how LTO bootstrap fails right now on x86_64.


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

* [Bug middle-end/55740] [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it
  2012-12-19 14:18 [Bug middle-end/55740] New: [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it rguenth at gcc dot gnu.org
@ 2012-12-19 14:19 ` rguenth at gcc dot gnu.org
  2012-12-19 14:44 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-19 14:19 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.8.0


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

* [Bug middle-end/55740] [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it
  2012-12-19 14:18 [Bug middle-end/55740] New: [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it rguenth at gcc dot gnu.org
  2012-12-19 14:19 ` [Bug middle-end/55740] " rguenth at gcc dot gnu.org
@ 2012-12-19 14:44 ` rguenth at gcc dot gnu.org
  2012-12-19 14:56 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-19 14:44 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-19 14:44:02 UTC ---
Reducing.


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

* [Bug middle-end/55740] [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it
  2012-12-19 14:18 [Bug middle-end/55740] New: [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it rguenth at gcc dot gnu.org
  2012-12-19 14:19 ` [Bug middle-end/55740] " rguenth at gcc dot gnu.org
  2012-12-19 14:44 ` rguenth at gcc dot gnu.org
@ 2012-12-19 14:56 ` rguenth at gcc dot gnu.org
  2012-12-19 15:13 ` [Bug rtl-optimization/55740] " rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-19 14:56 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|i?86-*-*                    |i?86-*-*, x86_64-*-*
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-12-19
     Ever Confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-19 14:56:02 UTC ---
Reduced testcase, fails at -O2:

static bool st_IsPathDelimiter( char c ) { return c == '/'; }
bool IsValidPath( char const * filename )
{
  if ( !filename || filename[0] == 0 )     
    return false;
  char const * run = filename;
  while ( run && *run )       
    {
      if ( run[0] == '.' )   
        if ( run[1] != '.' || ( !st_IsPathDelimiter( run[2] ) && run[2] != 0 )
)   
          return false;   
      while ( *run && !st_IsPathDelimiter( *run ) )
        ++run;
      if ( *run ) 
        ++run;
    }
}


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

* [Bug rtl-optimization/55740] [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it
  2012-12-19 14:18 [Bug middle-end/55740] New: [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it rguenth at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-12-19 14:56 ` rguenth at gcc dot gnu.org
@ 2012-12-19 15:13 ` rguenth at gcc dot gnu.org
  2012-12-20 12:46 ` rguenth at gcc dot gnu.org
  2012-12-20 12:46 ` rguenth at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-19 15:13 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
          Component|middle-end                  |rtl-optimization
         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-19 15:12:56 UTC ---
And it's of course after RTL CSE ...

Which ends up merging two loop headers as we cross-jumped the tails ...

  /* If we merge a loop header into its predecessor, update the loop
     structure.  */
  if (current_loops != NULL)
    {
      if (b->loop_father->header == b)
        {
          remove_bb_from_loops (a);
          add_bb_to_loop  (a, b->loop_father);
          a->loop_father->header = a;
        }
      remove_bb_from_loops (b);
    }

Which looks broken if a is already a loop header.  I have a patch.


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

* [Bug rtl-optimization/55740] [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it
  2012-12-19 14:18 [Bug middle-end/55740] New: [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it rguenth at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-12-19 15:13 ` [Bug rtl-optimization/55740] " rguenth at gcc dot gnu.org
@ 2012-12-20 12:46 ` rguenth at gcc dot gnu.org
  2012-12-20 12:46 ` rguenth at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-20 12:46 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-20 12:45:53 UTC ---
Author: rguenth
Date: Thu Dec 20 12:45:48 2012
New Revision: 194633

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194633
Log:
2012-12-20  Richard Biener  <rguenther@suse.de>

    PR middle-end/55740
    * cfghooks.c (merge_blocks): Properly handle merging of
    two loop headers.

    * g++.dg/torture/pr55740.C: New testcase.

Added:
    trunk/gcc/testsuite/g++.dg/torture/pr55740.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cfghooks.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug rtl-optimization/55740] [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it
  2012-12-19 14:18 [Bug middle-end/55740] New: [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it rguenth at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2012-12-20 12:46 ` rguenth at gcc dot gnu.org
@ 2012-12-20 12:46 ` rguenth at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-12-20 12:46 UTC (permalink / raw)
  To: gcc-bugs


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-20 12:46:11 UTC ---
Fixed.


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

end of thread, other threads:[~2012-12-20 12:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-19 14:18 [Bug middle-end/55740] New: [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it rguenth at gcc dot gnu.org
2012-12-19 14:19 ` [Bug middle-end/55740] " rguenth at gcc dot gnu.org
2012-12-19 14:44 ` rguenth at gcc dot gnu.org
2012-12-19 14:56 ` rguenth at gcc dot gnu.org
2012-12-19 15:13 ` [Bug rtl-optimization/55740] " rguenth at gcc dot gnu.org
2012-12-20 12:46 ` rguenth at gcc dot gnu.org
2012-12-20 12:46 ` rguenth at gcc dot gnu.org

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