From: Jakub Jelinek Date: Fri, 20 Dec 2019 17:44:16 +0000 (+0100) Subject: backport: re PR tree-optimization/92930 (GCC incorrectly optimizes away __builtin_app... X-Git-Tag: releases/gcc-9.3.0~280 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a6bf672cde4340d6acfec5b1c8b797d43219922;p=thirdparty%2Fgcc.git backport: re PR tree-optimization/92930 (GCC incorrectly optimizes away __builtin_apply() calls) Backported from mainline 2019-12-14 Jakub Jelinek PR tree-optimization/92930 * ipa-pure-const.c (special_builtin_state): Don't handle BUILT_IN_APPLY. * gcc.dg/tree-ssa/pr92930.c: New test. From-SVN: r279674 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b611ddded12e..744169615cc2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -5,6 +5,12 @@ diagnose teams not closely nested inside of target. Backported from mainline + 2019-12-14 Jakub Jelinek + + PR tree-optimization/92930 + * ipa-pure-const.c (special_builtin_state): Don't handle + BUILT_IN_APPLY. + 2019-12-12 Jakub Jelinek PR target/92904 diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c index bb561d00853f..0c6f84ff72de 100644 --- a/gcc/ipa-pure-const.c +++ b/gcc/ipa-pure-const.c @@ -527,7 +527,6 @@ special_builtin_state (enum pure_const_state_e *state, bool *looping, case BUILT_IN_CXA_END_CLEANUP: case BUILT_IN_EH_COPY_VALUES: case BUILT_IN_FRAME_ADDRESS: - case BUILT_IN_APPLY: case BUILT_IN_APPLY_ARGS: case BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT: case BUILT_IN_ASAN_AFTER_DYNAMIC_INIT: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 90f65318a9e6..cfff70b986ae 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2019-12-20 Jakub Jelinek Backported from mainline + 2019-12-14 Jakub Jelinek + + PR tree-optimization/92930 + * gcc.dg/tree-ssa/pr92930.c: New test. + 2019-12-12 Jakub Jelinek PR target/92904 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr92930.c b/gcc/testsuite/gcc.dg/tree-ssa/pr92930.c new file mode 100644 index 000000000000..67e604b6c506 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr92930.c @@ -0,0 +1,19 @@ +/* PR tree-optimization/92930 */ +/* { dg-do compile { target untyped_assembly } } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-final { scan-tree-dump "__builtin_apply " "optimized" } } */ +/* { dg-final { scan-tree-dump "__builtin_apply_args" "optimized" } } */ + +void foo (int a, int b, int c, int d, int e, int f, int g); + +static void bar (int a, ...) +{ + __builtin_apply (foo, __builtin_apply_args (), 20); +} + +int +main () +{ + bar (1024, 1025, 1026, 1027, 1028, 1029, 1030); + return 0; +}