Bug 42102

Summary: ICE of optimize
Product: gcc Reporter: Yoshinori Sato <ysato>
Component: targetAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED FIXED    
Severity: normal CC: gcc-bugs, msebor
Priority: P3 Keywords: ice-on-valid-code
Version: 4.5.0   
Target Milestone: ---   
Host: x86_64-linux Target: rx-elf
Build: Known to work:
Known to fail: Last reconfirmed:
Attachments: test program

Description Yoshinori Sato 2009-11-19 03:17:13 UTC
rx-elf-gcc -O2 -S failed.c
failed.c: In function ¡Æwrite_cache_pages¡Ç:
failed.c:76:1: error: insn does not satisfy its constraints:
(insn 123 230 39 12 failed.c:68 (set:QI (mem/s/j:QI (plus:SI (reg:SI 11 r11)
                (const_int 20 [0x14])) [0 S1 A32])
        (ior:QI (mem/s/j:QI (plus:SI (reg:SI 14 r14)
                    (const_int 20 [0x14])) [0 S1 A32])
            (ashift:QI (const_int 1 [0x1])
                (const_int 1 [0x1])))) 63 {bitset_in_memory} (nil))
failed.c:76:1: internal compiler error: in reload_cse_simplify_operands, at postreload.c:396

"rx-elf-gcc -O1 -S failed.c" is success.
Comment 1 Yoshinori Sato 2009-11-19 03:18:14 UTC
Created attachment 19041 [details]
test program
Comment 2 Martin Sebor 2017-02-07 16:46:58 UTC
Current trunk (GCC 7) configured for the rx-elf target compiles the test case successfully.  Resolving as fixed. 

$ /build/rx-elf/gcc-trunk/gcc/xgcc -B /build/rx-elf/gcc-trunk/gcc  -S -O2 -v t.c
Reading specs from /build/rx-elf/gcc-trunk/gcc/specs
COLLECT_GCC=/build/rx-elf/gcc-trunk/gcc/xgcc
Target: rx-elf
Configured with: /src/gcc/trunk/configure --enable-languages=c,c++ --prefix=/build/sysroot/rx-elf --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=rx-elf --without-headers
Thread model: single
gcc version 7.0.1 20170207 (experimental) (GCC) 
COLLECT_GCC_OPTIONS='-B' '/build/rx-elf/gcc-trunk/gcc' '-S' '-O2' '-v'
 /build/rx-elf/gcc-trunk/gcc/cc1 -quiet -v -iprefix /home/msebor/build/rx-elf/gcc-trunk/gcc/../lib/gcc/rx-elf/7.0.1/ -isystem /build/rx-elf/gcc-trunk/gcc/include -isystem /build/rx-elf/gcc-trunk/gcc/include-fixed t.c -quiet -dumpbase t.c -auxbase t -O2 -version -o t.s
GNU C11 (GCC) version 7.0.1 20170207 (experimental) (rx-elf)
	compiled by GNU C version 5.3.1 20151207 (Red Hat 5.3.1-2), GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version 0.15
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
...
#include "..." search starts here:
#include <...> search starts here:
 /build/rx-elf/gcc-trunk/gcc/include
 /build/rx-elf/gcc-trunk/gcc/include-fixed
End of search list.
GNU C11 (GCC) version 7.0.1 20170207 (experimental) (rx-elf)
	compiled by GNU C version 5.3.1 20151207 (Red Hat 5.3.1-2), GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version 0.15
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 982af928627021b9f23f5068d2fd4ae5
t.c: In function ‘pagevec_release’:
t.c:27:6: warning: implicit declaration of function ‘pagevec_count’; did you mean ‘pagevec_release’? [-Wimplicit-function-declaration]
  if (pagevec_count(pvec))
      ^~~~~~~~~~~~~
      pagevec_release
t.c:28:3: warning: implicit declaration of function ‘__pagevec_release’; did you mean ‘pagevec_release’? [-Wimplicit-function-declaration]
   __pagevec_release(pvec);
   ^~~~~~~~~~~~~~~~~
   pagevec_release
t.c: In function ‘write_cache_pages’:
t.c:52:14: warning: implicit declaration of function ‘pagevec_lookup_tag’ [-Wimplicit-function-declaration]
   nr_pages = pagevec_lookup_tag(&pvec, mapping, &index,
              ^~~~~~~~~~~~~~~~~~
t.c:57:4: warning: implicit declaration of function ‘lock_page’ [-Wimplicit-function-declaration]
    lock_page(page);
    ^~~~~~~~~
t.c:60:5: warning: implicit declaration of function ‘unlock_page’ [-Wimplicit-function-declaration]
     unlock_page(page);
     ^~~~~~~~~~~
t.c:64:9: warning: implicit declaration of function ‘clear_page_dirty_for_io’ [-Wimplicit-function-declaration]
    if (!clear_page_dirty_for_io(page))
         ^~~~~~~~~~~~~~~~~~~~~~~
t.c:67:28: warning: implicit declaration of function ‘bdi_write_congested’ [-Wimplicit-function-declaration]
    if (wbc->nonblocking && bdi_write_congested(bdi)) {
                            ^~~~~~~~~~~~~~~~~~~
COMPILER_PATH=/build/rx-elf/gcc-trunk/gcc/
LIBRARY_PATH=/build/rx-elf/gcc-trunk/gcc/
COLLECT_GCC_OPTIONS='-B' '/build/rx-elf/gcc-trunk/gcc' '-S' '-O2' '-v'