s390.c (s390_adjust_cost): Remove.
* config/s390/s390.c (s390_adjust_cost): Remove. (TARGET_SCHED_ADJUST_COST): Do not redefine. (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE. * config/s390/s390.md ("main_pool"): Use "larl" type attribute if TARGET_CPU_ZARCH. From-SVN: r88254
This commit is contained in:
parent
9924d7d8d8
commit
ea77e73803
|
@ -1,3 +1,11 @@
|
|||
2004-09-28 Ulrich Weigand <uweigand@de.ibm.com>
|
||||
|
||||
* config/s390/s390.c (s390_adjust_cost): Remove.
|
||||
(TARGET_SCHED_ADJUST_COST): Do not redefine.
|
||||
(s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
|
||||
* config/s390/s390.md ("main_pool"): Use "larl" type
|
||||
attribute if TARGET_CPU_ZARCH.
|
||||
|
||||
2004-09-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/ia64/ia64.c (ia64_expand_prologue): Declare ei
|
||||
|
|
|
@ -67,7 +67,6 @@ static void s390_output_mi_thunk (FILE *, tree, HOST_WIDE_INT,
|
|||
HOST_WIDE_INT, tree);
|
||||
static enum attr_type s390_safe_attr_type (rtx);
|
||||
|
||||
static int s390_adjust_cost (rtx, rtx, rtx, int);
|
||||
static int s390_adjust_priority (rtx, int);
|
||||
static int s390_issue_rate (void);
|
||||
static int s390_first_cycle_multipass_dfa_lookahead (void);
|
||||
|
@ -121,8 +120,6 @@ static bool s390_pass_by_reference (CUMULATIVE_ARGS *, enum machine_mode mode,
|
|||
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
|
||||
#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
|
||||
|
||||
#undef TARGET_SCHED_ADJUST_COST
|
||||
#define TARGET_SCHED_ADJUST_COST s390_adjust_cost
|
||||
#undef TARGET_SCHED_ADJUST_PRIORITY
|
||||
#define TARGET_SCHED_ADJUST_PRIORITY s390_adjust_priority
|
||||
#undef TARGET_SCHED_ISSUE_RATE
|
||||
|
@ -4167,41 +4164,6 @@ s390_agen_dep_p (rtx dep_insn, rtx insn)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Return the modified cost of the dependency of instruction INSN
|
||||
on instruction DEP_INSN through the link LINK. COST is the
|
||||
default cost of that dependency.
|
||||
|
||||
Data dependencies are all handled without delay. However, if a
|
||||
register is modified and subsequently used as base or index
|
||||
register of a memory reference, at least 4 cycles need to pass
|
||||
between setting and using the register to avoid pipeline stalls.
|
||||
An exception is the LA instruction. An address generated by LA can
|
||||
be used by introducing only a one cycle stall on the pipeline. */
|
||||
|
||||
static int
|
||||
s390_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
|
||||
{
|
||||
/* If the dependence is an anti-dependence, there is no cost. For an
|
||||
output dependence, there is sometimes a cost, but it doesn't seem
|
||||
worth handling those few cases. */
|
||||
|
||||
if (REG_NOTE_KIND (link) != 0)
|
||||
return 0;
|
||||
|
||||
/* If we can't recognize the insns, we can't really do anything. */
|
||||
if (recog_memoized (insn) < 0 || recog_memoized (dep_insn) < 0)
|
||||
return cost;
|
||||
|
||||
/* Operand forward in case of lr, load and la. */
|
||||
if (s390_tune == PROCESSOR_2084_Z990
|
||||
&& cost == 1
|
||||
&& (s390_safe_attr_type (dep_insn) == TYPE_LA
|
||||
|| s390_safe_attr_type (dep_insn) == TYPE_LR
|
||||
|| s390_safe_attr_type (dep_insn) == TYPE_LOAD))
|
||||
return 0;
|
||||
return cost;
|
||||
}
|
||||
|
||||
/* A C statement (sans semicolon) to update the integer scheduling priority
|
||||
INSN_PRIORITY (INSN). Increase the priority to execute the INSN earlier,
|
||||
reduce the priority to execute INSN later. Do not define this macro if
|
||||
|
@ -4226,6 +4188,7 @@ s390_adjust_priority (rtx insn ATTRIBUTE_UNUSED, int priority)
|
|||
priority = priority << 3;
|
||||
break;
|
||||
case TYPE_STORE:
|
||||
case TYPE_STM:
|
||||
priority = priority << 1;
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -7405,7 +7405,10 @@
|
|||
(unspec_volatile [(const_int 0)] UNSPECV_MAIN_POOL))]
|
||||
"GET_MODE (operands[0]) == Pmode"
|
||||
"* abort ();"
|
||||
[(set_attr "op_type" "NN")])
|
||||
[(set_attr "op_type" "NN")
|
||||
(set (attr "type")
|
||||
(if_then_else (ne (symbol_ref "TARGET_CPU_ZARCH") (const_int 0))
|
||||
(const_string "larl") (const_string "la")))])
|
||||
|
||||
(define_insn "reload_base_31"
|
||||
[(set (match_operand 0 "register_operand" "=a")
|
||||
|
|
Loading…
Reference in New Issue