diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-03 00:33:00 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-06-03 00:33:00 +0000 |
commit | d43e810fddb28560857e63da3eb9fc1e945117b1 (patch) | |
tree | bd27084a3b6068f80bd96842322bfbe8eb1a62db | |
parent | d637c34ba35e4846e60062e0b9c0cf5fc652f040 (diff) | |
download | gcc-d43e810fddb28560857e63da3eb9fc1e945117b1.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34368 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/alias.c | 14 | ||||
-rw-r--r-- | gcc/c-common.c | 2 | ||||
-rw-r--r-- | gcc/c-common.h | 1 | ||||
-rw-r--r-- | gcc/c-decl.c | 2 | ||||
-rw-r--r-- | gcc/ch/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ch/lang.c | 13 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/decl.c | 2 | ||||
-rw-r--r-- | gcc/expr.h | 2 | ||||
-rw-r--r-- | gcc/f/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/f/com.c | 15 | ||||
-rw-r--r-- | gcc/java/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/java/lang.c | 10 |
14 files changed, 69 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8857e6c8259..3b27cead806 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +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> * fixinc/server.c(sig_handler): resume closing server on SIGPIPE diff --git a/gcc/alias.c b/gcc/alias.c index 4541d519858..d1804181bed 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -81,10 +81,6 @@ typedef struct alias_set_entry splay_tree children; } *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 rtx find_symbolic_term PARAMS ((rtx)); static rtx get_addr PARAMS ((rtx)); @@ -369,8 +365,7 @@ get_alias_set (t) /* Now give the language a chance to do something but record what we gave it this time. */ orig_t = t; - if (lang_get_alias_set != 0 - && (set = (*lang_get_alias_set) (t)) != -1) + if ((set = lang_get_alias_set (t)) != -1) return set; /* If this is a reference, go inside it and use the underlying @@ -395,8 +390,8 @@ get_alias_set (t) } /* Give the language another chance to do something special. */ - if (orig_t != t && lang_get_alias_set != 0 - && (set = (*lang_get_alias_set) (t)) != -1) + if (orig_t != t + && (set = lang_get_alias_set (t)) != -1) return set; /* Now all we care about is the type. */ @@ -410,8 +405,7 @@ get_alias_set (t) return TYPE_ALIAS_SET (t); /* See if the language has special handling for this type. */ - if (lang_get_alias_set != 0 - && (set = (*lang_get_alias_set) (t)) != -1) + if ((set = lang_get_alias_set (t)) != -1) ; /* 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 diff --git a/gcc/c-common.c b/gcc/c-common.c index 979c380e941..d9c50bd9e4f 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -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. */ HOST_WIDE_INT -c_get_alias_set (t) +lang_get_alias_set (t) tree t; { tree u; diff --git a/gcc/c-common.h b/gcc/c-common.h index 30f58f850ab..d0427241062 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -97,7 +97,6 @@ extern void decl_attributes PARAMS ((tree, tree, tree)); extern void init_function_format_info PARAMS ((void)); extern void check_function_format PARAMS ((tree, tree, 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. NOP_EXPR is used as a special case (see truthvalue_conversion). */ extern void binary_op_error PARAMS ((enum tree_code)); diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 08bc9792500..31494e67317 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -2896,8 +2896,6 @@ init_decl_processing () tree array_domain_type; tree t; - lang_get_alias_set = c_get_alias_set; - current_function_decl = NULL; named_labels = NULL; current_binding_level = NULL_BINDING_LEVEL; diff --git a/gcc/ch/ChangeLog b/gcc/ch/ChangeLog index 30c39a24058..3b346e1fccc 100644 --- a/gcc/ch/ChangeLog +++ b/gcc/ch/ChangeLog @@ -1,3 +1,7 @@ +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> * lang.c (deep_const_expr): Use first_rtl_op. diff --git a/gcc/ch/lang.c b/gcc/ch/lang.c index 985eea7bffc..7b62c16b4f2 100644 --- a/gcc/ch/lang.c +++ b/gcc/ch/lang.c @@ -283,6 +283,19 @@ incomplete_type_error (value, 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 lang_init () { diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ebc064d0800..9a5c6c7a8f1 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +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> * decl.c (store_return_init): Call put_var_into_stack. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 1cd6f438d4e..d5097f2e134 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -6252,8 +6252,6 @@ init_decl_processing () int wchar_type_size; tree array_domain_type; - lang_get_alias_set = c_get_alias_set; - /* Check to see that the user did not specify an invalid combination of command-line options. */ if (flag_new_abi && !flag_vtable_thunks) diff --git a/gcc/expr.h b/gcc/expr.h index ca82ab1fe49..852b6c0efe6 100644 --- a/gcc/expr.h +++ b/gcc/expr.h @@ -922,7 +922,7 @@ extern void record_alias_subset PARAMS ((HOST_WIDE_INT, HOST_WIDE_INT)); #ifdef TREE_CODE 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 extern HOST_WIDE_INT new_alias_set PARAMS ((void)); diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index fb83e73efd5..a37deecc884 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,7 @@ +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> * bugs.texi: Note that debugging information for diff --git a/gcc/f/com.c b/gcc/f/com.c index c533330f215..5f08ef0bb6f 100644 --- a/gcc/f/com.c +++ b/gcc/f/com.c @@ -14870,6 +14870,21 @@ lang_identify () 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 lang_init_options () { diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index de192e2f0f2..aefe16da3b2 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2000-06-02 Richard Henderson <rth@cygnus.com> + + * lang.c (lang_get_alias_set): New. + 2000-05-31 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (resolve_field_access): Complete the DECL_INITIAL tree diff --git a/gcc/java/lang.c b/gcc/java/lang.c index 2a1d142ed38..765a3be7a5a 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -646,3 +646,13 @@ lang_print_xnode (file, node, indent) 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; +} |