[Bug tree-optimization/20634] New: 4.0 regression - code fails to compile/code generation issue with -funit-at-a-time

halcy0n at gentoo dot org gcc-bugzilla@gcc.gnu.org
Fri Mar 25 05:45:00 GMT 2005


The package I'm trying to compile with the latest snapshot of GCC is sudo.  It
compiles with -O2, but when running it, it does not work properly.  Adding
-fno-unit-at-a-time fixes the runtime issue.  Also the program works fine if
compiled with -O1.  So I took all of the -O2 options and put them on the command
line along with -O1.  The program fails to compile now with the following error:

i686-pc-linux-gnu-gcc -c -I. -I.  -O1 -pipe -fthread-jumps -fcrossjumping
-foptimize-sibling-calls -fcse-follow-jumps  -fcse-skip-blocks -fgcse  -fgcse-lm
-fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop 
-frerun-loop-opt -fcaller-saves -fforce-mem -fpeephole2 -fschedule-insns 
-fschedule-insns2 -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
-fdelete-null-pointer-checks -freorder-blocks  -freorder-functions
-funit-at-a-time -falign-functions  -falign-jumps -falign-loops -falign-labels
-ftree-pre -D_PATH_SUDOERS=\"/etc/sudoers\"
-D_PATH_SUDOERS_TMP=\"/etc/sudoers.tmp\" -DSUDOERS_UID=0 -DSUDOERS_GID=0
-DSUDOERS_MODE=0440  sudo.tab.c
parse.yacc: In function 'append':
parse.yacc:1132: error: unable to find a register to spill in class 'CREG'
parse.yacc:1132: error: this is the insn:
(insn:HI 18 5 23 0 (parallel [
            (set (reg:SI 0 ax [70])
                (unspec:SI [
                        (mem:BLK (reg/v/f:SI 64 [ src ]) [0 A8])
                        (reg:QI 74)
                        (const_int 1 [0x1])
                        (reg:SI 73)
                    ] 20))
            (use (reg:SI 19 dirflag))
            (clobber (reg/f:SI 5 di [orig:72 src ] [72]))
            (clobber (reg:CC 17 flags))
        ]) 463 {*strlenqi_1} (insn_list:REG_DEP_TRUE 16 (insn_list:REG_DEP_TRUE
14 (insn_list:REG_DEP_TRUE 4 (insn_list:REG_DEP_TRUE 17 (nil)))))
    (expr_list:REG_DEAD (reg:SI 19 dirflag)
        (expr_list:REG_UNUSED (reg:CC 17 flags)
            (expr_list:REG_UNUSED (reg/f:SI 5 di [orig:72 src ] [72])
                (expr_list:REG_EQUAL (unspec:SI [
                            (mem:BLK (reg/v/f:SI 64 [ src ]) [0 A8])
                            (reg:QI 74)
                            (const_int 1 [0x1])
                            (reg:SI 73)
                        ] 20)
                    (nil))))))
parse.yacc:1132: confused by earlier errors, bailing out

Taking -funit-at-a-time out allows it to compile fine.

nest sudo-1.6.7p5 # gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with:
/mnt/ftp/temp/portage/gcc-4.0.0_beta20050319/work/gcc-4.0-20050319/configure
--enable-version-specific-runtime-libs --prefix=/usr
--bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.0.0-beta20050319
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.0.0-beta20050319/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.0.0-beta20050319
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.0.0-beta20050319/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.0.0-beta20050319/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.0.0-beta20050319/include/g++-v4
--host=i686-pc-linux-gnu --disable-altivec --enable-nls
--without-included-gettext --with-system-zlib --disable-checking
--disable-werror --disable-libunwind-exceptions --disable-multilib
--disable-libgcj --enable-languages=c,c++ --enable-shared --enable-threads=posix
--enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 4.0.0-beta20050319 (Gentoo Linux 4.0.0_beta20050319)

-- 
           Summary: 4.0 regression - code fails to compile/code generation
                    issue with -funit-at-a-time
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: halcy0n at gentoo dot org
                CC: gcc-bugs at gcc dot gnu dot org


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



More information about the Gcc-bugs mailing list