summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog51
1 files changed, 51 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4bdf5c172c0..1e7dc32427e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,54 @@
+2010-10-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386-protos.h (init_cumulative_args): Add an int.
+
+ * config/i386/i386.c (block_info): New.
+ (BLOCK_INFO): Likewise.
+ (call_avx256_state): Likewise.
+ (check_avx256_stores): Likewise.
+ (move_or_delete_vzeroupper_2): Likewise.
+ (move_or_delete_vzeroupper_1): Likewise.
+ (move_or_delete_vzeroupper): Likewise.
+ (use_avx256_p): Likewise.
+ (function_pass_avx256_p): Likewise.
+ (flag_opts): Add -mvzeroupper.
+ (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
+ default for TARGET_AVX. Turn off MASK_VZEROUPPER if TARGET_AVX
+ is disabled.
+ (ix86_function_ok_for_sibcall): Disable sibcall if we need to
+ generate vzeroupper.
+ (init_cumulative_args): Add an int to indicate caller. Set
+ use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
+ based on return type.
+ (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
+ caller_pass_avx256_p based on argument type.
+ (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
+ is used, but not returned by caller.
+ (ix86_expand_call): Emit vzeroupper if 256bit AVX register is
+ used.
+ (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
+ is used.
+ (ix86_minimum_alignment): Likewise.
+ (ix86_expand_special_args_builtin): Set target to
+ GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
+ (ix86_reorg): Run the vzeroupper optimization if needed.
+
+ * config/i386/i386.h (ix86_args): Add caller.
+ (INIT_CUMULATIVE_ARGS): Updated.
+ (machine_function): Add use_vzeroupper_p, use_avx256_p,
+ caller_pass_avx256_p, caller_return_avx256_p,
+ callee_pass_avx256_p and callee_return_avx256_p.
+
+ * config/i386/i386.opt (-mvzeroupper): New.
+
+ * config/i386/predicates.md (vzeroupper_operation): Removed.
+
+ * config/i386/sse.md (avx_vzeroupper): Removed.
+ (*avx_vzeroupper): Removed.
+ (avx_vzeroupper): New.
+
+ * doc/invoke.texi: Document -mvzeroupper.
+
2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
* config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.