From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: Martin Jansa <martin.jansa@lge.com>,
openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] gcc-4.8: backport fix for ICE when building opus
Date: Fri, 18 Jul 2014 14:24:26 +0100 [thread overview]
Message-ID: <1405689866.26348.39.camel@ted> (raw)
In-Reply-To: <1405638947-30399-1-git-send-email-Martin.Jansa@gmail.com>
On Fri, 2014-07-18 at 01:15 +0200, Martin Jansa wrote:
> From: Martin Jansa <martin.jansa@lge.com>
>
> * backported from 4.8.2, so daisy isn't affected
>
> Signed-off-by: Martin Jansa <martin.jansa@lge.com>
> ---
> meta/recipes-devtools/gcc/gcc-4.8.inc | 1 +
> .../gcc-4.8/0001-fix-ICE-when-building-opus.patch | 121 +++++++++++++++++++++
> 2 files changed, 122 insertions(+)
> create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/0001-fix-ICE-when-building-opus.patch
Doesn't apply against master?
Cheers,
Richard
> diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc
> index f1260af..ac205de 100644
> --- a/meta/recipes-devtools/gcc/gcc-4.8.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
> @@ -79,6 +79,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
> file://0047-repomembug.patch \
> file://0048-PR57532.patch \
> file://0048-PR58854_fix_arm_apcs_epilogue.patch \
> + file://0001-fix-ICE-when-building-opus.patch \
> "
> SRC_URI[md5sum] = "3b2386c114cd74185aa3754b58a79304"
> SRC_URI[sha256sum] = "545b44be3ad9f2c4e90e6880f5c9d4f0a8f0e5f67e1ffb0d45da9fa01bb05813"
> diff --git a/meta/recipes-devtools/gcc/gcc-4.8/0001-fix-ICE-when-building-opus.patch b/meta/recipes-devtools/gcc/gcc-4.8/0001-fix-ICE-when-building-opus.patch
> new file mode 100644
> index 0000000..9d3aeaa
> --- /dev/null
> +++ b/meta/recipes-devtools/gcc/gcc-4.8/0001-fix-ICE-when-building-opus.patch
> @@ -0,0 +1,121 @@
> +From 22228d8ba86c70381f7c34c22ac6994234d0f3e7 Mon Sep 17 00:00:00 2001
> +From: xguo <xguo@138bc75d-0d04-0410-961f-82ee72b054a4>
> +Date: Fri, 9 Aug 2013 06:59:01 +0000
> +Subject: [PATCH] gcc/ChangeLog:
> +
> + Backport from mainline:
> + 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
> +
> + * config/arm/neon.md (vcond): Fix floating-point vector
> + comparisons against 0.
> +
> +gcc/testsuite/ChangeLog:
> +
> + Backport from mainline:
> + 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
> +
> + * gcc.target/arm/lp1189445.c: New testcase.
> +
> +Upstream-Status: Backport from 4.8.2
> +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> +
> +More details in:
> +http://gcc.1065356.n5.nabble.com/PATCH-ARM-Fix-unrecognizable-vector-comparisons-td947064.html
> +
> +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch@201620 138bc75d-0d04-0410-961f-82ee72b054a4
> +---
> + gcc/ChangeLog | 8 ++++++++
> + gcc/config/arm/neon.md | 34 +++++++++++++++++++++++++++-----
> + gcc/testsuite/ChangeLog | 7 +++++++
> + gcc/testsuite/gcc.target/arm/lp1189445.c | 18 +++++++++++++++++
> + 4 files changed, 62 insertions(+), 5 deletions(-)
> + create mode 100644 gcc/testsuite/gcc.target/arm/lp1189445.c
> +
> +diff --git a/gcc/config/arm/neon.md b/gcc/config/arm/neon.md
> +index d8d4202..86a5932 100644
> +--- a/gcc/config/arm/neon.md
> ++++ b/gcc/config/arm/neon.md
> +@@ -1732,6 +1732,7 @@
> + ? 3 : 1;
> + rtx magic_rtx = GEN_INT (magic_word);
> + int inverse = 0;
> ++ int use_zero_form = 0;
> + int swap_bsl_operands = 0;
> + rtx mask = gen_reg_rtx (<V_cmp_result>mode);
> + rtx tmp = gen_reg_rtx (<V_cmp_result>mode);
> +@@ -1742,12 +1743,16 @@
> + switch (GET_CODE (operands[3]))
> + {
> + case GE:
> ++ case GT:
> + case LE:
> ++ case LT:
> + case EQ:
> +- if (!REG_P (operands[5])
> +- && (operands[5] != CONST0_RTX (<MODE>mode)))
> +- operands[5] = force_reg (<MODE>mode, operands[5]);
> +- break;
> ++ if (operands[5] == CONST0_RTX (<MODE>mode))
> ++ {
> ++ use_zero_form = 1;
> ++ break;
> ++ }
> ++ /* Fall through. */
> + default:
> + if (!REG_P (operands[5]))
> + operands[5] = force_reg (<MODE>mode, operands[5]);
> +@@ -1798,7 +1803,26 @@
> + a GT b -> a GT b
> + a LE b -> b GE a
> + a LT b -> b GT a
> +- a EQ b -> a EQ b */
> ++ a EQ b -> a EQ b
> ++ Note that there also exist direct comparison against 0 forms,
> ++ so catch those as a special case. */
> ++ if (use_zero_form)
> ++ {
> ++ inverse = 0;
> ++ switch (GET_CODE (operands[3]))
> ++ {
> ++ case LT:
> ++ base_comparison = gen_neon_vclt<mode>;
> ++ break;
> ++ case LE:
> ++ base_comparison = gen_neon_vcle<mode>;
> ++ break;
> ++ default:
> ++ /* Do nothing, other zero form cases already have the correct
> ++ base_comparison. */
> ++ break;
> ++ }
> ++ }
> +
> + if (!inverse)
> + emit_insn (base_comparison (mask, operands[4], operands[5], magic_rtx));
> +diff --git a/gcc/testsuite/gcc.target/arm/lp1189445.c b/gcc/testsuite/gcc.target/arm/lp1189445.c
> +new file mode 100644
> +index 0000000..766748e
> +--- /dev/null
> ++++ b/gcc/testsuite/gcc.target/arm/lp1189445.c
> +@@ -0,0 +1,18 @@
> ++/* { dg-do compile } */
> ++/* { dg-require-effective-target arm_neon } */
> ++/* { dg-add-options arm_neon } */
> ++/* { dg-options "-O3" } */
> ++
> ++int id;
> ++int
> ++test (const long int *data)
> ++{
> ++ int i, retval;
> ++ retval = id;
> ++ for (i = 0; i < id; i++)
> ++ {
> ++ retval &= (data[i] <= 0);
> ++ }
> ++
> ++ return (retval);
> ++}
> +--
> +2.0.0
> +
> --
> 1.9.1
>
next prev parent reply other threads:[~2014-07-18 13:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-17 23:15 [PATCH] gcc-4.8: backport fix for ICE when building opus Martin Jansa
2014-07-18 13:24 ` Richard Purdie [this message]
2014-07-18 14:15 ` Martin Jansa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1405689866.26348.39.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=martin.jansa@gmail.com \
--cc=martin.jansa@lge.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.