Commit ad7b96a9 by Jan Hubicka Committed by Jan Hubicka

i386.c (x86_schedule): New global variable.


	* i386.c (x86_schedule): New global variable.
	(override_options): Disable scheduling when not supported.
	* i386.h (x86_schedule): Declare.
	(TARGET_SCHEDULE): New macro.

From-SVN: r87411
parent 3abcc195
2004-09-13 Jan Hubicka <jh@suse.cz>
* i386.c (x86_schedule): New global variable.
(override_options): Disable scheduling when not supported.
* i386.h (x86_schedule): Declare.
(TARGET_SCHEDULE): New macro.
2004-09-12 Richard Henderson <rth@redhat.com>
PR c++/16254
......
......@@ -578,6 +578,7 @@ const int x86_ext_80387_constants = m_K6 | m_ATHLON | m_PENT4 | m_NOCONA | m_PPR
/* Some CPU cores are not able to predict more than 4 branch instructions in
the 16 byte window. */
const int x86_four_jump_limit = m_PPRO | m_ATHLON_K8 | m_PENT4 | m_NOCONA;
const int x86_schedule = m_PPRO | m_ATHLON_K8 | m_K8 | m_PENT;
/* In case the average insn count for single function invocation is
lower than this constant, emit fast (but longer) prologue and
......@@ -1565,6 +1566,10 @@ override_options (void)
internal_label_prefix_len = p - internal_label_prefix;
*p = '\0';
}
/* When scheduling description is not available, disable scheduler pass so it
won't slow down the compilation and make x87 code slower. */
if (!TARGET_SCHEDULE)
flag_schedule_insns_after_reload = flag_schedule_insns = 0;
}
void
......
......@@ -243,7 +243,7 @@ extern const int x86_arch_always_fancy_math_387, x86_shift1;
extern const int x86_sse_partial_reg_dependency, x86_sse_partial_regs;
extern const int x86_sse_typeless_stores, x86_sse_load0_by_pxor;
extern const int x86_use_ffreep, x86_sse_partial_regs_for_cvtsd2ss;
extern const int x86_inter_unit_moves;
extern const int x86_inter_unit_moves, x86_schedule;
extern int x86_prefetch_sse;
#define TARGET_USE_LEAVE (x86_use_leave & TUNEMASK)
......@@ -298,6 +298,7 @@ extern int x86_prefetch_sse;
#define TARGET_REP_MOVL_OPTIMAL (x86_rep_movl_optimal & TUNEMASK)
#define TARGET_INTER_UNIT_MOVES (x86_inter_unit_moves & TUNEMASK)
#define TARGET_FOUR_JUMP_LIMIT (x86_four_jump_limit & TUNEMASK)
#define TARGET_SCHEDULE (x86_schedule & TUNEMASK)
#define TARGET_STACK_PROBE (target_flags & MASK_STACK_PROBE)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment