This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug gcov-profile/55121] New: ICE in if-convertion with PGO (ARM)


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

             Bug #: 55121
           Summary: ICE in if-convertion with PGO (ARM)
    Classification: Unclassified
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: gcov-profile
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: christophe.lyon@st.com


Created attachment 28555
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28555
patch 1

Hi,
 As discussed in 
http://gcc.gnu.org/ml/gcc/2012-10/msg00330.html
 then
http://gcc.gnu.org/ml/gcc/2012-10/msg00341.html
 there is an ICE when compiling SPEC2k's GAP bench with GCC for ARM using
profiling data.

My tests are based upon SVN rev #191819, with 4 patches (attached)
submitted by Matthew Gretton-Dann.

You can reproduce the ICE with:

$ XXXX/cc1 -fpreprocessed eval.i -quiet -dumpbase eval.c -march=armv7-a
-mtune=cortex-a9 -mthumb -mfpu=neon -mvectorize-with-neon-quad
-mfloat-abi=softfp -mtls-dialect=gnu -auxbase-strip eval.o -g -O3 -version
-fprofile-use=YYY -fno-common -o eval.s
eval.c: In function 'Ge':
eval.c:792:1: internal compiler error: in df_compact_blocks, at df-core.c:1570
 0x6917c1 df_compact_blocks()
        
/work1/lyon/Work/ARM/Linaro/sources/gcc-fsf-hot-cold-pgo/gcc/df-core.c:1570
 0x62c3f6 compact_blocks()
         /work1/lyon/Work/ARM/Linaro/sources/gcc-fsf-hot-cold-pgo/gcc/cfg.c:165
 0x659b89 relink_block_chain(bool)
        
/work1/lyon/Work/ARM/Linaro/sources/gcc-fsf-hot-cold-pgo/gcc/cfgrtl.c:3112
 0xeb7061 reorder_basic_blocks
        
/work1/lyon/Work/ARM/Linaro/sources/gcc-fsf-hot-cold-pgo/gcc/bb-reorder.c:2172
 0xeb71b8 rest_of_handle_reorder_blocks
       
/work1/lyon/Work/ARM/Linaro/sources/gcc-fsf-hot-cold-pgo/gcc/bb-reorder.c:2237


It could be that calls to merge_blocks() in merge_if_block() should be
guarded by e.g. can_merge_blocks_p (combo_bb, join_bb).

Adding this line before calling
       merge_blocks (combo_bb, join_bb);
makes the compilation succeed.

However, the resulting code is still not functional but that problem
may come from another module of the bench.

Also attached: eval.i and eval.gcda


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]