From: Bin Cheng Date: Thu, 9 Feb 2012 09:37:37 +0000 (+0000) Subject: re PR middle-end/51867 (GCC generates inconsistent code for same sources calling... X-Git-Tag: releases/gcc-4.7.0~488 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=15ed19ff324f45494d471b65c321804f1858cd26;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e44e4b853d9e..05837c6dd295 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-02-09 Bin Cheng + + PR middle-end/51867 + * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P. + 2012-02-08 Magnus Granberg PR driver/48524 diff --git a/gcc/builtins.c b/gcc/builtins.c index 74be5522681a..cf4956123c3b 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 66a7e41a9c40..2e12bb8f3340 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2012-02-09 Bin Cheng + + 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 * 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 e51bf918bf47..5444d8f64847 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 000000000000..3f1016e2c8f5 --- /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 + +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" } } */