Index: tools/gcc/gcc-version.mk =================================================================== RCS file: /cvsroot/src/tools/gcc/gcc-version.mk,v retrieving revision 1.2 diff -u -p -r1.2 gcc-version.mk --- tools/gcc/gcc-version.mk 20 Oct 2014 08:37:30 -0000 1.2 +++ tools/gcc/gcc-version.mk 15 Jan 2015 08:21:30 -0000 @@ -2,4 +2,4 @@ # common location for tools and native build -NETBSD_GCC_VERSION=nb1 20141012 +NETBSD_GCC_VERSION=nb2 20150114 Index: external/gpl3/gcc/dist/gcc/ChangeLog =================================================================== RCS file: /cvsroot/src/external/gpl3/gcc/dist/gcc/ChangeLog,v retrieving revision 1.10 diff -u -p -r1.10 ChangeLog --- external/gpl3/gcc/dist/gcc/ChangeLog 10 Jan 2015 01:06:41 -0000 1.10 +++ external/gpl3/gcc/dist/gcc/ChangeLog 15 Jan 2015 08:21:35 -0000 @@ -1,3 +1,11 @@ +2015-01-13 Oleg Endo + + Backport form mainline + 2015-01-13 Oleg Endo + + PR target/64479 + * rtlanal.c (set_reg_p): Handle SEQUENCE constructs. + 2014-12-19 Release Manager * GCC 4.8.4 released. Index: external/gpl3/gcc/dist/gcc/rtlanal.c =================================================================== RCS file: /cvsroot/src/external/gpl3/gcc/dist/gcc/rtlanal.c,v retrieving revision 1.1.1.3 diff -u -p -r1.1.1.3 rtlanal.c --- external/gpl3/gcc/dist/gcc/rtlanal.c 27 May 2014 08:43:37 -0000 1.1.1.3 +++ external/gpl3/gcc/dist/gcc/rtlanal.c 15 Jan 2015 08:21:37 -0000 @@ -873,6 +873,17 @@ reg_set_between_p (const_rtx reg, const_ int reg_set_p (const_rtx reg, const_rtx insn) { + /* After delay slot handling, call and branch insns might be in a + sequence. Check all the elements there. */ + if (INSN_P (insn) && GET_CODE (PATTERN (insn)) == SEQUENCE) + { + for (int i = 0; i < XVECLEN (PATTERN (insn), 0); ++i) + if (reg_set_p (reg, XVECEXP (PATTERN (insn), 0, i))) + return true; + + return false; + } + /* We can be passed an insn or part of one. If we are passed an insn, check if a side-effect of the insn clobbers REG. */ if (INSN_P (insn) @@ -884,7 +895,7 @@ reg_set_p (const_rtx reg, const_rtx insn GET_MODE (reg), REGNO (reg))) || MEM_P (reg) || find_reg_fusage (insn, CLOBBER, reg))))) - return 1; + return true; return set_of (reg, insn) != NULL_RTX; }