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



             Bug #: 56707

           Summary: [4.7 regression] ICE in distance_non_agu_define_in_bb

                    for -mtune=atom -O2

    Classification: Unclassified

           Product: gcc

           Version: 4.7.3

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: tree-optimization

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: xarthisius...@gmail.com





Created attachment 29712

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29712

Reduced testcase



With gcc-4.7 compiled as:

  ./configure --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu

--disable-werror --enable-languages=c,c++



attached testcase fails for:

  build/gcc/cc1plus -mtune=atom -O2 bug461694.i



  Program received signal SIGSEGV, Segmentation fault.

  distance_non_agu_define_in_bb (...)

    at /dev/shm/gcc/gcc/config/i386/i386.c:16558

16558          if (prev == BB_HEAD (bb))



yielding:



   #0  distance_non_agu_define_in_bb (regno1=regno1@entry=3,

regno2=regno2@entry=4294967295,

       insn=insn@entry=0x7ffff5d661b0, distance=distance@entry=2,

start=<optimized out>,

       found=found@entry=0x7fffffffe23b "") at

/dev/shm/gcc/gcc/config/i386/i386.c:16558

   #1  0x0000000000c4adbc in distance_non_agu_define (insn=0x7ffff5d661b0,

regno2=4294967295, regno1=3)

       at /dev/shm/gcc/gcc/config/i386/i386.c:16612

   #2  ix86_lea_outperforms (insn=0x7ffff5d661b0, regno0=0, regno1=3,

regno2=4294967295, split_cost=0)

       at /dev/shm/gcc/gcc/config/i386/i386.c:16782

   #3  0x0000000000d862f0 in output_53 (operands=0x1631ac0 <recog_data>,

insn=0x7ffff5d661b0)

       at /dev/shm/gcc/gcc/config/i386/i386.md:2224

   #4  0x0000000000827bd3 in final_scan_insn (insn=insn@entry=0x7ffff5d661b0,

file=file@entry=0x16b2ef0,

       optimize_p=optimize_p@entry=2, nopeepholes=nopeepholes@entry=0,

seen=seen@entry=0x7fffffffe39c)

       at /dev/shm/gcc/gcc/final.c:2682

   #5  0x0000000000828690 in final (first=0x7ffff5d45a00, file=0x16b2ef0,

optimize_p=2) at /dev/shm/gcc/gcc/final.c:1786

   #6  0x000000000082898a in rest_of_handle_final () at

/dev/shm/gcc/gcc/final.c:4319

   #7  0x000000000097b23d in execute_one_pass (pass=pass@entry=0x1519d60

<pass_final>) at /dev/shm/gcc/gcc/passes.c:2180

   #8  0x000000000097b5c5 in execute_pass_list (pass=0x1519d60 <pass_final>) at

/dev/shm/gcc/gcc/passes.c:2235

   #9  0x000000000097b5d7 in execute_pass_list (pass=0x151aa40

<pass_postreload>) at /dev/shm/gcc/gcc/passes.c:2236

   #10 0x000000000097b5d7 in execute_pass_list (pass=0x151aaa0

<pass_rest_of_compilation>)

       at /dev/shm/gcc/gcc/passes.c:2236

   #11 0x0000000000774397 in tree_rest_of_compilation (node=0x7ffff5c1c850) at

/dev/shm/gcc/gcc/cgraphunit.c:1898

   #12 0x0000000000778b12 in cgraph_expand_function (node=0x7ffff5c1c850) at

/dev/shm/gcc/gcc/cgraphunit.c:1968

   #13 0x000000000077aaaf in cgraph_expand_all_functions () at

/dev/shm/gcc/gcc/cgraphunit.c:2033

   #14 cgraph_optimize () at /dev/shm/gcc/gcc/cgraphunit.c:2724

   #15 0x000000000077afb5 in cgraph_finalize_compilation_unit () at

/dev/shm/gcc/gcc/cgraphunit.c:2810

   #16 0x00000000005ac36b in cp_write_global_declarations () at

/dev/shm/gcc/gcc/cp/decl2.c:4072

   #17 0x0000000000a17f4a in compile_file () at /dev/shm/gcc/gcc/toplev.c:572

   #18 do_compile () at /dev/shm/gcc/gcc/toplev.c:1938

   #19 toplev_main (argc=4, argv=0x7fffffffe6b8) at

/dev/shm/gcc/gcc/toplev.c:2014

   #20 0x00007ffff664d9b5 in __libc_start_main (main=0x4d13b0 <main>, argc=4,

ubp_av=0x7fffffffe6b8,

       init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,

stack_end=0x7fffffffe6a8)

       at libc-start.c:225



Regression was introduced by:

  http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=181077 (bug 50962)



ICE disappears with:

  http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=186451



Bug is still present in gcc-4.7 branch. Tested with:

  svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@197001



Please check if revision 186451 is a proper fix and backport to gcc-4.7 branch.

TIA!

Reply via email to