+2017-10-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (ix86_canonicalize_comparison): New function.
+ (TARGET_CANONICALIZE_COMPARISON): Define.
+
2017-10-11 Qing Zhao <qing.zhao@oracle.com>
PR target/81422
(ix86_min_insn_size): ... this one; export.
(core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
(core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
- (core2i7_first_cycle_multipass_backtrack): Move to x86-tune-sched-core.c.
+ (core2i7_first_cycle_multipass_backtrack): Move to
+ x86-tune-sched-core.c.
(core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
(core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
(ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
* builtins.def (BUILT_IN_SETJMP): Revert latest change.
-2017-10-08 Jan Hubicka <hubicka@ucw.cz>
2017-10-08 Jan Hubicka <hubicka@ucw.cz>
* i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets
(znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
for int and fp.
(atom_cost): Set reassociation width to 2.
- (slm_cost, generic_cost): Set fp reassociation width to 2 and 1 otherwise.
+ (slm_cost, generic_cost): Set fp reassociation width
+ to 2 and 1 otherwise.
(intel_cost): Set fp reassociation width to 4 and 1 otherwise.
(core_cost): Set fp reassociation width to 4 and vector to 2.
(ix86_reassociation_width): Rewrite using cost table; special case
(class dom_opt_dom_walker): Initialize m_dummy_cond member in the
class ctor.
(pass_dominator:execute): Build the dummy_cond here and pass it
- to the dom_opt_dom_walker ctor.
+ to the dom_opt_dom_walker ctor.
(test_for_singularity): New function.
2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com>
* rs6000.md (allocate_stack): Handle -fstack-clash-protection.
(probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
Add additional operand and pass it to output_probe_stack_range.
-
+
2017-09-25 Bin Cheng <bin.cheng@arm.com>
PR tree-optimization/82163
2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com>
- * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
+ * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
mode attribute for TARGET_AVX512VL.
2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com>
(ix86_expand_prologue): Dump stack clash info as needed.
Call ix86_adjust_stack_and_probe_stack_clash as needed.
- * function.c (dump_stack_clash_frame_info): New function.
- * function.h (dump_stack_clash_frame_info): Prototype.
- (enum stack_clash_probes): New enum.
+ * function.c (dump_stack_clash_frame_info): New function.
+ * function.h (dump_stack_clash_frame_info): Prototype.
+ (enum stack_clash_probes): New enum.
* config/alpha/alpha.c (alpha_expand_prologue): Also check
flag_stack_clash_protection.
fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = "";
}
+/* Canonicalize a comparison from one we don't have to one we do have. */
+
+static void
+ix86_canonicalize_comparison (int *code, rtx *op0, rtx *op1,
+ bool op0_preserve_value)
+{
+ /* The order of operands in x87 ficom compare is forced by combine in
+ simplify_comparison () function. Float operator is treated as RTX_OBJ
+ with a precedence over other operators and is always put in the first
+ place. Swap condition and operands to match ficom instruction. */
+ if (!op0_preserve_value
+ && GET_CODE (*op0) == FLOAT && MEM_P (XEXP (*op0, 0)) && REG_P (*op1))
+ {
+ enum rtx_code scode = swap_condition ((enum rtx_code) *code);
+
+ /* We are called only for compares that are split to SAHF instruction.
+ Ensure that we have setcc/jcc insn for the swapped condition. */
+ if (ix86_fp_compare_code_to_integer (scode) != UNKNOWN)
+ {
+ std::swap (*op0, *op1);
+ *code = (int) scode;
+ }
+ }
+}
\f
/* Save the current options */
#undef TARGET_CONDITIONAL_REGISTER_USAGE
#define TARGET_CONDITIONAL_REGISTER_USAGE ix86_conditional_register_usage
+#undef TARGET_CANONICALIZE_COMPARISON
+#define TARGET_CANONICALIZE_COMPARISON ix86_canonicalize_comparison
+
#undef TARGET_LOOP_UNROLL_ADJUST
#define TARGET_LOOP_UNROLL_ADJUST ix86_loop_unroll_adjust
+2017-10-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/387-ficom-2.c: New test.
+
2017-10-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/80421
2017-10-11 Qing Zhao <qing.zhao@oracle.com>
PR target/81422
- * gcc.target/aarch64/pr81422.C: New test.
+ * gcc.target/aarch64/pr81422.C: New test.
2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com>
- * gcc.target/i386/avx512f-constant-set.c: New test.
+ * gcc.target/i386/avx512f-constant-set.c: New test.
2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com>
2017-08-23 Richard Biener <rguenther@suse.de>
- PR target/81921
+ PR target/81921
* gcc.target/i386/pr81921.c: New testcase.
2017-08-23 Daniel Santos <daniel.santos@pobox.com>
2017-08-22 Yvan Roux <yvan.roux@linaro.org>
- PR c++/80287
- * g++.dg/pr80287.C: New test.
+ PR c++/80287
+ * g++.dg/pr80287.C: New test.
2017-08-22 Richard Biener <rguenther@suse.de>