+Wed Oct 27 02:05:58 1999 Mark P. Mitchell <mark@codesourcery.com>
+
+ * alias.c (init_alias_analysis): Allocate reg_known_value and
+ reg_known_equiv_p on the heap. Likewise for new_reg_base_value
+ and reg_seen.
+ (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
+ * cse.c (cse_main): Call end_alias_analysis.
+ * haifa-sched.c (schedule_insns): Likewise.
+ * local-alloc. (update_equiv_regs): Likewise.
+ * reload1.c (reload_cse_regs): Likewise.
+
Wed Oct 27 01:49:17 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
reg_known_value_size = maxreg;
- reg_known_value
- = (rtx *) oballoc ((maxreg - FIRST_PSEUDO_REGISTER) * sizeof (rtx))
+ reg_known_value
+ = (rtx *) xcalloc ((maxreg - FIRST_PSEUDO_REGISTER), sizeof (rtx))
+ - FIRST_PSEUDO_REGISTER;
+ reg_known_equiv_p
+ = (char*) xcalloc ((maxreg - FIRST_PSEUDO_REGISTER), sizeof (char))
- FIRST_PSEUDO_REGISTER;
- reg_known_equiv_p =
- oballoc (maxreg - FIRST_PSEUDO_REGISTER) - FIRST_PSEUDO_REGISTER;
- bzero ((char *) (reg_known_value + FIRST_PSEUDO_REGISTER),
- (maxreg-FIRST_PSEUDO_REGISTER) * sizeof (rtx));
- bzero (reg_known_equiv_p + FIRST_PSEUDO_REGISTER,
- (maxreg - FIRST_PSEUDO_REGISTER) * sizeof (char));
/* Overallocate reg_base_value to allow some growth during loop
optimization. Loop unrolling can create a large number of
if (ggc_p)
ggc_add_rtx_root (reg_base_value, reg_base_value_size);
- new_reg_base_value = (rtx *)alloca (reg_base_value_size * sizeof (rtx));
- reg_seen = (char *)alloca (reg_base_value_size);
+ new_reg_base_value = (rtx *) xmalloc (reg_base_value_size * sizeof (rtx));
+ reg_seen = (char *) xmalloc (reg_base_value_size);
if (! reload_completed && flag_unroll_loops)
{
/* ??? Why are we realloc'ing if we're just going to zero it? */
}
while (changed && pass < MAX_ALIAS_LOOP_PASSES);
+ /* Clean up. */
+ free (new_reg_base_value);
new_reg_base_value = 0;
+ free (reg_seen);
reg_seen = 0;
}
void
end_alias_analysis ()
{
+ free (reg_known_value + FIRST_PSEUDO_REGISTER);
reg_known_value = 0;
reg_known_value_size = 0;
+ free (reg_known_equiv_p + FIRST_PSEUDO_REGISTER);
+ reg_known_equiv_p = 0;
if (reg_base_value)
{
if (ggc_p)