diff options
author | Richard Purdie <richard@openedhand.com> | 2008-07-18 12:28:46 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2008-07-18 12:28:46 +0000 |
commit | e8bda8575637b967afaa0321fc3aeb69e809087a (patch) | |
tree | d4865b2556e227b403f9c13ad128d9bfb3c009d8 /meta/packages/gcc/gcc-4.3.0/debian/pr33148.dpatch | |
parent | f204c8376f18d6cc443e7f4533d7eeace5d45f95 (diff) | |
download | openembedded-core-e8bda8575637b967afaa0321fc3aeb69e809087a.tar.gz openembedded-core-e8bda8575637b967afaa0321fc3aeb69e809087a.tar.bz2 openembedded-core-e8bda8575637b967afaa0321fc3aeb69e809087a.zip |
gcc 4.3.0 -> 4.3.1 (from OE)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4876 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/gcc/gcc-4.3.0/debian/pr33148.dpatch')
-rw-r--r-- | meta/packages/gcc/gcc-4.3.0/debian/pr33148.dpatch | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/meta/packages/gcc/gcc-4.3.0/debian/pr33148.dpatch b/meta/packages/gcc/gcc-4.3.0/debian/pr33148.dpatch deleted file mode 100644 index bcf30ffb56..0000000000 --- a/meta/packages/gcc/gcc-4.3.0/debian/pr33148.dpatch +++ /dev/null @@ -1,94 +0,0 @@ -#! /bin/sh -e - -# DP: Fix (neg (lt X 0)) optimization (PR rtl-optimization/33148) - -dir= -if [ $# -eq 3 -a "$2" = '-d' ]; then - pdir="-d $3" - dir="$3/" -elif [ $# -ne 1 ]; then - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -fi -case "$1" in - -patch) - patch $pdir -f --no-backup-if-mismatch -p0 < $0 - ;; - -unpatch) - patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 - ;; - *) - echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" - exit 1 -esac -exit 0 - - -From: Jakub Jelinek <jakub@redhat.com> -Sender: gcc-patches-owner@gcc.gnu.org -To: gcc-patches@gcc.gnu.org -Subject: [PATCH] Fix (neg (lt X 0)) optimization (PR rtl-optimization/33148) -Date: Mon, 27 Aug 2007 07:22:44 -0400 - -Hi! - -PR25600 change introduced an optimization of (neg (lt x 0)) to -(ashirtrt x C), but it is not checking whether x's mode is suitable -for it. As it checks that op1 is const0_rtx, I believe MODE_FLOAT -or VECTOR_MODE_P modes are not a problem, CC modes can certainly appear -in LT's first operand with second operand const0_rtx. -So, when we optimize -(neg:DI (lt:DI (reg:CC ...) (const_int 0))) -we create something like -(sign_extend:DI (ashirtrt:CC (reg:CC ...) (const_int 31))) -which is IMHO invalid RTL, ashirtrt is documented on fixed point modes -only (guess vector modes aren't listed just by omission) and so is -sign_extend. - -Ok for 4.2/trunk? - -2007-08-27 Jakub Jelinek <jakub@redhat.com> - - PR rtl-optimization/33148 - * simplify-rtx.c (simplify_unary_operation_1): Only optimize - (neg (lt X 0)) if X has scalar int mode. - - * gcc.c-torture/compile/20070827-1.c: New test. - ---- gcc/simplify-rtx.c.jj 2007-08-27 10:15:33.000000000 +0200 -+++ gcc/simplify-rtx.c 2007-08-27 12:12:51.000000000 +0200 -@@ -583,7 +583,8 @@ simplify_unary_operation_1 (enum rtx_cod - /* (neg (lt x 0)) is (ashiftrt X C) if STORE_FLAG_VALUE is 1. */ - /* (neg (lt x 0)) is (lshiftrt X C) if STORE_FLAG_VALUE is -1. */ - if (GET_CODE (op) == LT -- && XEXP (op, 1) == const0_rtx) -+ && XEXP (op, 1) == const0_rtx -+ && SCALAR_INT_MODE_P (GET_MODE (XEXP (op, 0)))) - { - enum machine_mode inner = GET_MODE (XEXP (op, 0)); - int isize = GET_MODE_BITSIZE (inner); ---- gcc/testsuite/gcc.c-torture/compile/20070827-1.c.jj 2007-08-27 12:17:20.000000000 +0200 -+++ gcc/testsuite/gcc.c-torture/compile/20070827-1.c 2007-08-27 12:15:45.000000000 +0200 -@@ -0,0 +1,20 @@ -+/* PR rtl-optimization/33148 */ -+ -+int -+foo (unsigned int *p, int *q, unsigned int w, unsigned int b) -+{ -+ unsigned int i; -+ int mask; -+ -+ if (q[0] < q[1]) -+ mask = 0xff; -+ else -+ mask = 0; -+ -+ for (i = 0; 8 * i < w; i++) -+ { -+ b ^= mask; -+ *p++ = b; -+ } -+ return 0; -+} - - Jakub |