alpha.c (alpha_cannot_force_const_mem): New.

* config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
        (TARGET_CANNOT_FORCE_CONST_MEM): New.

From-SVN: r86602
This commit is contained in:
Richard Henderson 2004-08-25 19:37:41 -07:00 committed by Richard Henderson
parent 4166ef5159
commit 04886dc0ea
2 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2004-08-25 Richard Henderson <rth@redhat.com>
* config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
(TARGET_CANNOT_FORCE_CONST_MEM): New.
2004-08-25 Andrew MacLeod <amacleod@redhat.com>
* doc/tree-ssa.texi: Document new operand iterator.

View File

@ -1180,6 +1180,17 @@ alpha_legitimize_address (rtx x, rtx scratch,
}
}
/* Primarily this is required for TLS symbols, but given that our move
patterns *ought* to be able to handle any symbol at any time, we
should never be spilling symbolic operands to the constant pool, ever. */
static bool
alpha_cannot_force_const_mem (rtx x)
{
enum rtx_code code = GET_CODE (x);
return code == SYMBOL_REF || code == LABEL_REF || code == CONST;
}
/* We do not allow indirect calls to be optimized into sibling calls, nor
can we allow a call to a function with a different GP to be optimized
into a sibcall. */
@ -9357,6 +9368,8 @@ alpha_init_libfuncs (void)
#define TARGET_FUNCTION_OK_FOR_SIBCALL alpha_function_ok_for_sibcall
#undef TARGET_CANNOT_COPY_INSN_P
#define TARGET_CANNOT_COPY_INSN_P alpha_cannot_copy_insn_p
#undef TARGET_CANNOT_FORCE_CONST_MEM
#define TARGET_CANNOT_FORCE_CONST_MEM alpha_cannot_force_const_mem
#if TARGET_ABI_OSF
#undef TARGET_ASM_OUTPUT_MI_THUNK