From: Martin Liska Date: Mon, 29 May 2017 09:08:14 +0000 (+0000) Subject: Backport r246525 X-Git-Tag: releases/gcc-5.5.0~330 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24fbb338b354f9cbdf4563fe08a684b92e82d01a;p=thirdparty%2Fgcc.git Backport r246525 2017-05-29 Martin Liska Backport from mainline 2017-03-28 Martin Liska PR ipa/80104 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a thunk call as DECL_GIMPLE_REG_P when vector or complex type. 2017-05-29 Martin Liska Backport from mainline 2017-03-28 Martin Liska PR ipa/80104 * gcc.dg/ipa/pr80104.c: New test. From-SVN: r248558 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 457f0f03c5ba..19748ee37741 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2017-05-29 Martin Liska + + Backport from mainline + 2017-03-28 Martin Liska + + PR ipa/80104 + * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a + thunk call as DECL_GIMPLE_REG_P when vector or complex type. + 2017-05-26 Sheldon Lobo Backported from mainline @@ -217,6 +226,7 @@ : Ditto. Use non-flags reg clobbering instructions to zero extend op2. +>>>>>>> .r248557 2017-03-22 Martin Liska Backport from mainline diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index d4db126cbd50..5f0b06ebec09 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -1673,6 +1673,10 @@ cgraph_node::expand_thunk (bool output_asm_thunks, bool force_gimple_thunk) for (; i < nargs; i++, arg = DECL_CHAIN (arg)) { tree tmp = arg; + if (VECTOR_TYPE_P (TREE_TYPE (arg)) + || TREE_CODE (TREE_TYPE (arg)) == COMPLEX_TYPE) + DECL_GIMPLE_REG_P (arg) = 1; + if (!is_gimple_val (arg)) { tmp = create_tmp_reg (TYPE_MAIN_VARIANT diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 776f54702a54..bec6fec204aa 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2017-05-29 Martin Liska + + Backport from mainline + 2017-03-28 Martin Liska + + PR ipa/80104 + * gcc.dg/ipa/pr80104.c: New test. + 2017-05-19 Uros Bizjak Backport from mainline @@ -154,6 +162,7 @@ (diex, diexq): Update argument type. * gcc.target/powerpc/pr80246.c: New test. +>>>>>>> .r248557 2017-03-22 Martin Liska Backport from mainline diff --git a/gcc/testsuite/gcc.dg/ipa/pr80104.c b/gcc/testsuite/gcc.dg/ipa/pr80104.c new file mode 100644 index 000000000000..7e75c9907e7d --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/pr80104.c @@ -0,0 +1,15 @@ +/* PR ipa/80104 */ +/* { dg-do compile } */ +/* { dg-options "-fipa-icf" } */ + +float +a (_Complex float b) +{ + return *&b; +} + +float +c (_Complex float b) +{ + return (&b)[0]; +}