diff options
author | Bin Cheng <bin.cheng@arm.com> | 2012-02-09 09:37:37 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2012-02-09 09:37:37 +0000 |
commit | 15ed19ff324f45494d471b65c321804f1858cd26 (patch) | |
tree | db7d4b5e98e0256791ba9060dc4a2afcabda31a3 | |
parent | 365e6b65dd15fb533ae641820ce820347d67596e (diff) | |
download | gcc-15ed19ff324f45494d471b65c321804f1858cd26.zip gcc-15ed19ff324f45494d471b65c321804f1858cd26.tar.gz gcc-15ed19ff324f45494d471b65c321804f1858cd26.tar.bz2 |
re PR middle-end/51867 (GCC generates inconsistent code for same sources calling builtin calls, like sqrtf)
PR target/51867
* builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
PR target/51867
* testsuite/c-c++-common/dfp/signbit-2.c: Change '-O0' to '-O1'.
* testsuite/gcc.dg/pr51867.c: New test.
From-SVN: r184037
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/builtins.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/c-c++-common/dfp/signbit-2.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr51867.c | 16 |
5 files changed, 31 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e44e4b8..05837c6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-02-09 Bin Cheng <bin.cheng@arm.com> + + PR middle-end/51867 + * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P. + 2012-02-08 Magnus Granberg <zorry@gentoo.org> PR driver/48524 diff --git a/gcc/builtins.c b/gcc/builtins.c index 74be552..cf49561 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -5776,7 +5776,6 @@ expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode, set of builtins. */ if (!optimize && !called_as_built_in (fndecl) - && DECL_ASSEMBLER_NAME_SET_P (fndecl) && fcode != BUILT_IN_ALLOCA && fcode != BUILT_IN_ALLOCA_WITH_ALIGN && fcode != BUILT_IN_FREE) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 66a7e41..2e12bb8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2012-02-09 Bin Cheng <bin.cheng@arm.com> + + PR middle-end/51867 + * testsuite/c-c++-common/dfp/signbit-2.c: Change '-O0' to '-O1'. + * testsuite/gcc.dg/pr51867.c: New test. + 2012-02-09 Ian Lance Taylor <iant@google.com> * go.test/go-test.exp (go-gc-tests): Don't run stack.go on systems diff --git a/gcc/testsuite/c-c++-common/dfp/signbit-2.c b/gcc/testsuite/c-c++-common/dfp/signbit-2.c index e51bf91..5444d8f 100644 --- a/gcc/testsuite/c-c++-common/dfp/signbit-2.c +++ b/gcc/testsuite/c-c++-common/dfp/signbit-2.c @@ -1,7 +1,10 @@ -/* { dg-options "-O0" } */ +/* { dg-options "-O1" } */ /* Check that the compiler uses builtins for signbit; if not the link will fail because library functions are in libm. */ +/* See PR51867. + Since GCC uses library call when optimizing for "-O0", this test + case requires at least "-O1" level optimization now. */ #include "dfp-dbg.h" diff --git a/gcc/testsuite/gcc.dg/pr51867.c b/gcc/testsuite/gcc.dg/pr51867.c new file mode 100644 index 0000000..3f1016e --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr51867.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -fno-math-errno -fdump-rtl-expand" } */ +#include <math.h> + +float a(float x) +{ + return sqrtf(x); +} +float b(float x) +{ + return sqrtf(x); +} +/* Here the calls to sqrtf should be expanded into CALL_INSNs, rather than + fpu sqrtf rtl patterns. */ +/* { dg-final { scan-rtl-dump-times "call_insn" 2 "expand" } } */ +/* { dg-final { cleanup-rtl-dump "expand" } } */ |