From: ktkachov Date: Fri, 26 Feb 2016 16:02:21 +0000 (+0000) Subject: [AArch64] Set TREE_TARGET_GLOBALS in aarch64_set_current_function when new tree is... X-Git-Tag: upstream/6.1~875 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=126a5a2d09599b4d8a24c73f0f235329eb525b67;p=platform%2Fupstream%2Flinaro-gcc.git [AArch64] Set TREE_TARGET_GLOBALS in aarch64_set_current_function when new tree is the default node to recalculate optab availability PR target/69245 * config/aarch64/aarch64.c (aarch64_set_current_function): Save/restore target globals when switching to target_option_default_node. * gcc.target/aarch64/pr69245_1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233745 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 916c381..a34883e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2016-02-26 Kyrylo Tkachov + PR target/69245 + * config/aarch64/aarch64.c (aarch64_set_current_function): + Save/restore target globals when switching to + target_option_default_node. + +2016-02-26 Kyrylo Tkachov + PR target/69613 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask): Return 0 if !SHIFT_COUNT_TRUNCATED. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 30d6f41..3519c7b 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -8576,7 +8576,7 @@ aarch64_set_current_function (tree fndecl) if (old_tree == new_tree) ; - else if (new_tree && new_tree != target_option_default_node) + else if (new_tree) { cl_target_option_restore (&global_options, TREE_TARGET_OPTION (new_tree)); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d5b890d..99e0f2f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2016-02-26 Kyrylo Tkachov + PR target/69245 + * gcc.target/aarch64/pr69245_1.c: New test. + +2016-02-26 Kyrylo Tkachov + PR target/69613 * gcc.dg/torture/pr69613.c: New test. diff --git a/gcc/testsuite/gcc.target/aarch64/pr69245_1.c b/gcc/testsuite/gcc.target/aarch64/pr69245_1.c new file mode 100644 index 0000000..dcc542b --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/pr69245_1.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -march=armv8-a+fp -fomit-frame-pointer" } */ + +#pragma GCC target "arch=armv8-a+nofp" +long a; +static void +fn1 () +{ +} + +#pragma GCC target "arch=armv8-a+fp" +float +fn2 (float a) +{ + return a + 2.0; +} + +/* { dg-final { scan-assembler-not "__addsf3" } } */