alias.c (argument_registers): Remove.

* alias.c (argument_registers): Remove.
	(init_alias_once): Initialize static_reg_base_value here.  Remove
	initialization of argument_registers.
	(init_alias_once_per_function): Remove.
	(init_alias_analysis): Copy all the entries from static_reg_base_value
	into new_reg_base_value all at once.
	* rtl.h (init_alias_once_per_function): Remove declaration.
	* function.c (prepare_function_start): Do not call
	init_alias_once_per_function.

	* caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
	starting a sequence and emitting an INSN.

From-SVN: r54582
This commit is contained in:
Jeff Law 2002-06-13 06:24:00 -06:00 committed by Jeff Law
parent a336f2e55f
commit 7f24367410
5 changed files with 21 additions and 52 deletions

View File

@ -1,3 +1,18 @@
2002-06-13 Jeffrey Law <law@redhat.com>
* alias.c (argument_registers): Remove.
(init_alias_once): Initialize static_reg_base_value here. Remove
initialization of argument_registers.
(init_alias_once_per_function): Remove.
(init_alias_analysis): Copy all the entries from static_reg_base_value
into new_reg_base_value all at once.
* rtl.h (init_alias_once_per_function): Remove declaration.
* function.c (prepare_function_start): Do not call
init_alias_once_per_function.
* caller-save.c (init_caller_save): Use gen_rtx_INSN instead of
starting a sequence and emitting an INSN.
2002-06-13 Richard Sandiford <rsandifo@redhat.com>
* config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case.

View File

@ -2621,8 +2621,6 @@ mark_constant_function ()
}
static HARD_REG_SET argument_registers;
void
init_alias_once ()
{
@ -2637,36 +2635,9 @@ init_alias_once ()
numbers, so translate if necessary due to register windows. */
if (FUNCTION_ARG_REGNO_P (OUTGOING_REGNO (i))
&& HARD_REGNO_MODE_OK (i, Pmode))
SET_HARD_REG_BIT (argument_registers, i);
alias_sets = splay_tree_new (splay_tree_compare_ints, 0, 0);
}
/* Per-function initializer for the aliasing code.
Allocate RTL for argument and other special use registers once
per function here intead of multiple times per function in
init_alias_analysis. */
void
init_alias_once_per_function ()
{
int i;
/* Generate and mark all hard registers which may contain an address.
The stack, frame and argument pointers may contain an address.
An argument register which can hold a Pmode value may contain
an address even if it is not in BASE_REGS.
The address expression is VOIDmode for an argument and
Pmode for other registers. */
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (TEST_HARD_REG_BIT (argument_registers, i))
static_reg_base_value[i]
= gen_rtx_ADDRESS (VOIDmode, gen_rtx_REG (Pmode, i));
static_reg_base_value[STACK_POINTER_REGNUM]
= gen_rtx_ADDRESS (Pmode, stack_pointer_rtx);
static_reg_base_value[ARG_POINTER_REGNUM]
@ -2677,6 +2648,8 @@ init_alias_once_per_function ()
static_reg_base_value[HARD_FRAME_POINTER_REGNUM]
= gen_rtx_ADDRESS (Pmode, hard_frame_pointer_rtx);
#endif
alias_sets = splay_tree_new (splay_tree_compare_ints, 0, 0);
}
/* Initialize the aliasing machinery. Initialize the REG_KNOWN_VALUE
@ -2764,20 +2737,9 @@ init_alias_analysis ()
The address expression is VOIDmode for an argument and
Pmode for other registers. */
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (TEST_HARD_REG_BIT (argument_registers, i))
new_reg_base_value[i] = static_reg_base_value[i];
memcpy (new_reg_base_value, static_reg_base_value,
FIRST_PSEUDO_REGISTER * sizeof (rtx));
new_reg_base_value[STACK_POINTER_REGNUM]
= static_reg_base_value[STACK_POINTER_REGNUM];
new_reg_base_value[ARG_POINTER_REGNUM]
= static_reg_base_value[ARG_POINTER_REGNUM];
new_reg_base_value[FRAME_POINTER_REGNUM]
= static_reg_base_value[FRAME_POINTER_REGNUM];
#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
new_reg_base_value[HARD_FRAME_POINTER_REGNUM]
= static_reg_base_value[HARD_FRAME_POINTER_REGNUM];
#endif
/* Walk the insns adding values to the new_reg_base_value array. */
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
{

View File

@ -192,10 +192,8 @@ init_caller_save ()
savepat = gen_rtx_SET (VOIDmode, test_mem, test_reg);
restpat = gen_rtx_SET (VOIDmode, test_reg, test_mem);
start_sequence ();
saveinsn = emit_insn (savepat);
restinsn = emit_insn (restpat);
saveinsn = gen_rtx_INSN (VOIDmode, 0, 0, 0, 0, 0, savepat, -1, 0, 0);
restinsn = gen_rtx_INSN (VOIDmode, 0, 0, 0, 0, 0, restpat, -1, 0, 0);
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
for (mode = 0 ; mode < MAX_MACHINE_MODE; mode++)
@ -251,8 +249,6 @@ init_caller_save ()
SET_HARD_REG_BIT (call_fixed_reg_set, i);
}
}
end_sequence ();
}
/* Initialize save areas by showing that we haven't allocated any yet. */

View File

@ -6210,9 +6210,6 @@ prepare_function_start ()
/* Initialize the RTL mechanism. */
init_emit ();
/* Do per-function initialization of the alias analyzer. */
init_alias_once_per_function ();
/* Initialize the queue of pending postincrement and postdecrements,
and some other info in expr.c. */
init_expr ();

View File

@ -2160,7 +2160,6 @@ extern int anti_dependence PARAMS ((rtx, rtx));
extern int output_dependence PARAMS ((rtx, rtx));
extern void mark_constant_function PARAMS ((void));
extern void init_alias_once PARAMS ((void));
extern void init_alias_once_per_function PARAMS ((void));
extern void init_alias_analysis PARAMS ((void));
extern void end_alias_analysis PARAMS ((void));
extern rtx addr_side_effect_eval PARAMS ((rtx, int, int));