Commit 2e761e49 by Richard Henderson Committed by Richard Henderson

alias.c (lang_get_alias_set): Remove.

gcc/
	* alias.c (lang_get_alias_set): Remove.
	(get_alias_set): Call it directly, not indirectly.
	* c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
	* c-common.h (c_get_alias_set): Don't declare.
	* c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
	* expr.h (lang_get_alias_set): Declare as function, not pointer.

gcc/ch/
	* lang.c (lang_get_alias_set): New.

gcc/cp/
	* decl.c (init_decl_processing): Don't set lang_get_alias_set.

gcc/f/
	* com.c (lang_get_alias_set): New.

gcc/java/
	* lang.c (lang_get_alias_set): New.

From-SVN: r34368
parent 57224090
2000-06-02 Richard Henderson <rth@cygnus.com>
* alias.c (lang_get_alias_set): Remove.
(get_alias_set): Call it directly, not indirectly.
* c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
* c-common.h (c_get_alias_set): Don't declare.
* c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
* expr.h (lang_get_alias_set): Declare as function, not pointer.
2000-06-02 Bruce Korb <bkorb@gnu.org> 2000-06-02 Bruce Korb <bkorb@gnu.org>
* fixinc/server.c(sig_handler): resume closing server on SIGPIPE * fixinc/server.c(sig_handler): resume closing server on SIGPIPE
......
...@@ -81,10 +81,6 @@ typedef struct alias_set_entry ...@@ -81,10 +81,6 @@ typedef struct alias_set_entry
splay_tree children; splay_tree children;
} *alias_set_entry; } *alias_set_entry;
/* The language-specific function for alias analysis. If NULL, the
language does not do any special alias analysis. */
HOST_WIDE_INT (*lang_get_alias_set) PARAMS ((tree));
static int rtx_equal_for_memref_p PARAMS ((rtx, rtx)); static int rtx_equal_for_memref_p PARAMS ((rtx, rtx));
static rtx find_symbolic_term PARAMS ((rtx)); static rtx find_symbolic_term PARAMS ((rtx));
static rtx get_addr PARAMS ((rtx)); static rtx get_addr PARAMS ((rtx));
...@@ -369,8 +365,7 @@ get_alias_set (t) ...@@ -369,8 +365,7 @@ get_alias_set (t)
/* Now give the language a chance to do something but record what we /* Now give the language a chance to do something but record what we
gave it this time. */ gave it this time. */
orig_t = t; orig_t = t;
if (lang_get_alias_set != 0 if ((set = lang_get_alias_set (t)) != -1)
&& (set = (*lang_get_alias_set) (t)) != -1)
return set; return set;
/* If this is a reference, go inside it and use the underlying /* If this is a reference, go inside it and use the underlying
...@@ -395,8 +390,8 @@ get_alias_set (t) ...@@ -395,8 +390,8 @@ get_alias_set (t)
} }
/* Give the language another chance to do something special. */ /* Give the language another chance to do something special. */
if (orig_t != t && lang_get_alias_set != 0 if (orig_t != t
&& (set = (*lang_get_alias_set) (t)) != -1) && (set = lang_get_alias_set (t)) != -1)
return set; return set;
/* Now all we care about is the type. */ /* Now all we care about is the type. */
...@@ -410,8 +405,7 @@ get_alias_set (t) ...@@ -410,8 +405,7 @@ get_alias_set (t)
return TYPE_ALIAS_SET (t); return TYPE_ALIAS_SET (t);
/* See if the language has special handling for this type. */ /* See if the language has special handling for this type. */
if (lang_get_alias_set != 0 if ((set = lang_get_alias_set (t)) != -1)
&& (set = (*lang_get_alias_set) (t)) != -1)
; ;
/* There are no objects of FUNCTION_TYPE, so there's no point in /* There are no objects of FUNCTION_TYPE, so there's no point in
using up an alias set for them. (There are, of course, pointers using up an alias set for them. (There are, of course, pointers
......
...@@ -3265,7 +3265,7 @@ c_apply_type_quals_to_decl (type_quals, decl) ...@@ -3265,7 +3265,7 @@ c_apply_type_quals_to_decl (type_quals, decl)
or a type. Return -1 if we don't do anything special. */ or a type. Return -1 if we don't do anything special. */
HOST_WIDE_INT HOST_WIDE_INT
c_get_alias_set (t) lang_get_alias_set (t)
tree t; tree t;
{ {
tree u; tree u;
......
...@@ -97,7 +97,6 @@ extern void decl_attributes PARAMS ((tree, tree, tree)); ...@@ -97,7 +97,6 @@ extern void decl_attributes PARAMS ((tree, tree, tree));
extern void init_function_format_info PARAMS ((void)); extern void init_function_format_info PARAMS ((void));
extern void check_function_format PARAMS ((tree, tree, tree)); extern void check_function_format PARAMS ((tree, tree, tree));
extern void c_apply_type_quals_to_decl PARAMS ((int, tree)); extern void c_apply_type_quals_to_decl PARAMS ((int, tree));
extern HOST_WIDE_INT c_get_alias_set PARAMS ((tree));
/* Print an error message for invalid operands to arith operation CODE. /* Print an error message for invalid operands to arith operation CODE.
NOP_EXPR is used as a special case (see truthvalue_conversion). */ NOP_EXPR is used as a special case (see truthvalue_conversion). */
extern void binary_op_error PARAMS ((enum tree_code)); extern void binary_op_error PARAMS ((enum tree_code));
......
...@@ -2896,8 +2896,6 @@ init_decl_processing () ...@@ -2896,8 +2896,6 @@ init_decl_processing ()
tree array_domain_type; tree array_domain_type;
tree t; tree t;
lang_get_alias_set = c_get_alias_set;
current_function_decl = NULL; current_function_decl = NULL;
named_labels = NULL; named_labels = NULL;
current_binding_level = NULL_BINDING_LEVEL; current_binding_level = NULL_BINDING_LEVEL;
......
2000-06-02 Richard Henderson <rth@cygnus.com>
* lang.c (lang_get_alias_set): New.
Sat May 27 11:24:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> Sat May 27 11:24:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* lang.c (deep_const_expr): Use first_rtl_op. * lang.c (deep_const_expr): Use first_rtl_op.
......
...@@ -283,6 +283,19 @@ incomplete_type_error (value, type) ...@@ -283,6 +283,19 @@ incomplete_type_error (value, type)
error ("internal error - use of undefined type"); error ("internal error - use of undefined type");
} }
/* Return the typed-based alias set for T, which may be an expression
or a type. Return -1 if we don't do anything special. */
HOST_WIDE_INT
lang_get_alias_set (t)
tree t;
{
/* ??? Need to figure out what the rules are. Certainly we'd need
to handle union-like things, and probably variant records.
Until then, turn off type-based aliasing completely. */
return 0;
}
void void
lang_init () lang_init ()
{ {
......
2000-06-02 Richard Henderson <rth@cygnus.com>
* decl.c (init_decl_processing): Don't set lang_get_alias_set.
2000-06-02 Jason Merrill <jason@casey.soma.redhat.com> 2000-06-02 Jason Merrill <jason@casey.soma.redhat.com>
* decl.c (store_return_init): Call put_var_into_stack. * decl.c (store_return_init): Call put_var_into_stack.
......
...@@ -6252,8 +6252,6 @@ init_decl_processing () ...@@ -6252,8 +6252,6 @@ init_decl_processing ()
int wchar_type_size; int wchar_type_size;
tree array_domain_type; tree array_domain_type;
lang_get_alias_set = c_get_alias_set;
/* Check to see that the user did not specify an invalid combination /* Check to see that the user did not specify an invalid combination
of command-line options. */ of command-line options. */
if (flag_new_abi && !flag_vtable_thunks) if (flag_new_abi && !flag_vtable_thunks)
......
...@@ -922,7 +922,7 @@ extern void record_alias_subset PARAMS ((HOST_WIDE_INT, ...@@ -922,7 +922,7 @@ extern void record_alias_subset PARAMS ((HOST_WIDE_INT,
HOST_WIDE_INT)); HOST_WIDE_INT));
#ifdef TREE_CODE #ifdef TREE_CODE
extern HOST_WIDE_INT get_alias_set PARAMS ((tree)); extern HOST_WIDE_INT get_alias_set PARAMS ((tree));
extern HOST_WIDE_INT (*lang_get_alias_set) PARAMS ((tree)); extern HOST_WIDE_INT lang_get_alias_set PARAMS ((tree));
#endif #endif
extern HOST_WIDE_INT new_alias_set PARAMS ((void)); extern HOST_WIDE_INT new_alias_set PARAMS ((void));
......
2000-06-02 Richard Henderson <rth@cygnus.com>
* com.c (lang_get_alias_set): New.
2000-05-28 Toon Moene <toon@moene.indiv.nluug.nl> 2000-05-28 Toon Moene <toon@moene.indiv.nluug.nl>
* bugs.texi: Note that debugging information for * bugs.texi: Note that debugging information for
......
...@@ -14870,6 +14870,21 @@ lang_identify () ...@@ -14870,6 +14870,21 @@ lang_identify ()
return "f77"; return "f77";
} }
/* Return the typed-based alias set for T, which may be an expression
or a type. Return -1 if we don't do anything special. */
HOST_WIDE_INT
lang_get_alias_set (t)
tree t;
{
/* We do not wish to use alias-set based aliasing at all. Used in the
extreme (every object with its own set, with equivalences recorded)
it might be helpful, but there are problems when it comes to inlining.
We get on ok with flag_argument_noalias, and alias-set aliasing does
currently limit how stack slots can be reused, which is a lose. */
return 0;
}
void void
lang_init_options () lang_init_options ()
{ {
......
2000-06-02 Richard Henderson <rth@cygnus.com>
* lang.c (lang_get_alias_set): New.
2000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com> 2000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (resolve_field_access): Complete the DECL_INITIAL tree * parse.y (resolve_field_access): Complete the DECL_INITIAL tree
......
...@@ -646,3 +646,13 @@ lang_print_xnode (file, node, indent) ...@@ -646,3 +646,13 @@ lang_print_xnode (file, node, indent)
int indent __attribute ((__unused__)); int indent __attribute ((__unused__));
{ {
} }
/* Return the typed-based alias set for T, which may be an expression
or a type. Return -1 if we don't do anything special. */
HOST_WIDE_INT
lang_get_alias_set (t)
tree t;
{
return -1;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment