diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2011-05-23 16:51:42 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2011-05-23 09:51:42 -0700 |
commit | 34a061bed589449b2bf2efb42e017805bc173be7 (patch) | |
tree | 196db598d1cb44738232656628850a8fd6ae7bfe | |
parent | c375a3a4ef026031d8116df122fa0193eb6a922f (diff) | |
download | gcc-34a061bed589449b2bf2efb42e017805bc173be7.zip gcc-34a061bed589449b2bf2efb42e017805bc173be7.tar.gz gcc-34a061bed589449b2bf2efb42e017805bc173be7.tar.bz2 |
Save the initial options after checking vzeroupper.
gcc/
2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
PR target/47315
* config/i386/i386.c (ix86_option_override_internal): Save the
initial options after checking vzeroupper.
gcc/testsuite/
2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
PR target/47315
* gcc.target/i386/pr47315.c: New test.
From-SVN: r174078
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 11 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr47315.c | 10 |
4 files changed, 27 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a3cb0f1..1d46b04 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-05-23 H.J. Lu <hongjiu.lu@intel.com> + + PR target/47315 + * config/i386/i386.c (ix86_option_override_internal): Save the + initial options after checking vzeroupper. + 2011-05-23 David Li <davidxl@google.com> PR tree-optimization/48988 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 0709be8..854e376 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -4191,11 +4191,6 @@ ix86_option_override_internal (bool main_args_p) #endif } - /* Save the initial options in case the user does function specific options */ - if (main_args_p) - target_option_default_node = target_option_current_node - = build_target_option_node (); - if (TARGET_AVX) { /* When not optimize for size, enable vzeroupper optimization for @@ -4217,6 +4212,12 @@ ix86_option_override_internal (bool main_args_p) /* Disable vzeroupper pass if TARGET_AVX is disabled. */ target_flags &= ~MASK_VZEROUPPER; } + + /* Save the initial options in case the user does function specific + options. */ + if (main_args_p) + target_option_default_node = target_option_current_node + = build_target_option_node (); } /* Return TRUE if VAL is passed in register with 256bit AVX modes. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 72aae61..85137d0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-05-23 H.J. Lu <hongjiu.lu@intel.com> + + PR target/47315 + * gcc.target/i386/pr47315.c: New test. + 2011-05-23 Jason Merrill <jason@redhat.com> * g++.dg/cpp0x/lambda/lambda-eh2.C: New. diff --git a/gcc/testsuite/gcc.target/i386/pr47315.c b/gcc/testsuite/gcc.target/i386/pr47315.c new file mode 100644 index 0000000..871d3f1 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr47315.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -mvzeroupper" } */ + +__attribute__ ((__target__ ("avx"))) +float bar (float f) {} + +void foo (float f) +{ + bar (f); +} |