diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b039e860ee2..e8abc331be3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-01-17 Geoffrey Keating + + * alias.c (new_alias_set): Mark last_alias_set for PCH. + (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it + for PCH. + (get_frame_alias_set): Likewise, except rename it to 'frame_set'. + * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH. + (get_TOC_alias_set): Mark 'set' for PCH. + 2004-01-16 Geoffrey Keating * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps diff --git a/gcc/alias.c b/gcc/alias.c index a56feae1170..02554a9a1ac 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -592,11 +592,11 @@ get_alias_set (tree t) /* Return a brand-new alias set. */ +static GTY(()) HOST_WIDE_INT last_alias_set; + HOST_WIDE_INT new_alias_set (void) { - static HOST_WIDE_INT last_alias_set; - if (flag_strict_aliasing) { if (!alias_sets) @@ -724,29 +724,29 @@ record_component_aliases (tree type) /* Allocate an alias set for use in storing and reading from the varargs spill area. */ +static GTY(()) HOST_WIDE_INT varargs_set = -1; + HOST_WIDE_INT get_varargs_alias_set (void) { - static HOST_WIDE_INT set = -1; + if (varargs_set == -1) + varargs_set = new_alias_set (); - if (set == -1) - set = new_alias_set (); - - return set; + return varargs_set; } /* Likewise, but used for the fixed portions of the frame, e.g., register save areas. */ +static GTY(()) HOST_WIDE_INT frame_set = -1; + HOST_WIDE_INT get_frame_alias_set (void) { - static HOST_WIDE_INT set = -1; + if (frame_set == -1) + frame_set = new_alias_set (); - if (set == -1) - set = new_alias_set (); - - return set; + return frame_set; } /* Inside SRC, the source of a SET, find a base address. */ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 9a399b16f06..183cf21ab7e 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -230,7 +230,7 @@ int toc_initialized; char toc_label_name[10]; /* Alias set for saves and restores from the rs6000 stack. */ -static int rs6000_sr_alias_set; +static GTY(()) int rs6000_sr_alias_set; /* Call distance, overridden by -mlongcall and #pragma longcall(1). The only place that looks at this is rs6000_set_default_type_attributes; @@ -11106,13 +11106,14 @@ rs6000_emit_eh_reg_restore (rtx source, rtx scratch) emit_move_insn (gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM), operands[0]); } +static GTY(()) int set = -1; + int get_TOC_alias_set (void) { - static int set = -1; - if (set == -1) - set = new_alias_set (); - return set; + if (set == -1) + set = new_alias_set (); + return set; } /* This returns nonzero if the current function uses the TOC. This is