From 58f986ca91089e045b33129a6525bc0e399431e5 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Tue, 1 Sep 2009 08:38:10 +0000 Subject: [PATCH] tree-flow.h (mark_addressable): Move declaration ... 2009-09-01 Richard Guenther * tree-flow.h (mark_addressable): Move declaration ... * tree.h (mark_addressable): ... here. * stmt.c (expand_asm_operands): Use mark_addressable, not lang_hooks.mark_addressable. * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_MARK_ADDRESSABLE. * langhooks.h (struct lang_hooks): Remove mark_addressable langhook. * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove. ada/ * gcc-interface/misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove. cp/ * cp-objcp-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove. fortran/ * f95-lang.c (gfc_mark_addressable): Remove. (LANG_HOOKS_MARK_ADDRESSABLE): Likewise. java/ * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove. * java-tree.h (java_mark_addressable): Likewise. * typeck.c (java_mark_addressable): Likewise. From-SVN: r151260 --- gcc/ChangeLog | 11 ++++++ gcc/ada/ChangeLog | 4 +++ gcc/ada/gcc-interface/misc.c | 2 -- gcc/c-objc-common.h | 2 -- gcc/cp/ChangeLog | 4 +++ gcc/cp/cp-objcp-common.h | 2 -- gcc/fortran/ChangeLog | 5 +++ gcc/fortran/f95-lang.c | 80 -------------------------------------------- gcc/java/ChangeLog | 6 ++++ gcc/java/java-tree.h | 1 - gcc/java/lang.c | 2 -- gcc/java/typeck.c | 65 ----------------------------------- gcc/langhooks-def.h | 1 - gcc/langhooks.h | 5 --- gcc/stmt.c | 4 +-- gcc/tree-flow.h | 1 - gcc/tree.h | 1 + 17 files changed, 33 insertions(+), 163 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 61edf90..9b1577c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2009-09-01 Richard Guenther + + * tree-flow.h (mark_addressable): Move declaration ... + * tree.h (mark_addressable): ... here. + * stmt.c (expand_asm_operands): Use mark_addressable, not + lang_hooks.mark_addressable. + * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove + LANG_HOOKS_MARK_ADDRESSABLE. + * langhooks.h (struct lang_hooks): Remove mark_addressable langhook. + * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove. + 2009-08-31 Chris Demetriou * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ede9b4d..1723e41 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,7 @@ +2009-09-01 Richard Guenther + + * gcc-interface/misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove. + 2009-08-25 Eric Botcazou * gcc-interface/trans.c (call_to_gnu): Tidy. diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c index cc9eeaa..46e762f 100644 --- a/gcc/ada/gcc-interface/misc.c +++ b/gcc/ada/gcc-interface/misc.c @@ -106,8 +106,6 @@ static void gnat_get_subrange_bounds (const_tree, tree *, tree *); #define LANG_HOOKS_WRITE_GLOBALS gnat_write_global_declarations #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET gnat_get_alias_set -#undef LANG_HOOKS_MARK_ADDRESSABLE -#define LANG_HOOKS_MARK_ADDRESSABLE gnat_mark_addressable #undef LANG_HOOKS_PRINT_DECL #define LANG_HOOKS_PRINT_DECL gnat_print_decl #undef LANG_HOOKS_PRINT_TYPE diff --git a/gcc/c-objc-common.h b/gcc/c-objc-common.h index e90236e..8408b9f 100644 --- a/gcc/c-objc-common.h +++ b/gcc/c-objc-common.h @@ -40,8 +40,6 @@ along with GCC; see the file COPYING3. If not see #define LANG_HOOKS_POST_OPTIONS c_common_post_options #undef LANG_HOOKS_GET_ALIAS_SET #define LANG_HOOKS_GET_ALIAS_SET c_common_get_alias_set -#undef LANG_HOOKS_MARK_ADDRESSABLE -#define LANG_HOOKS_MARK_ADDRESSABLE c_mark_addressable #undef LANG_HOOKS_PARSE_FILE #define LANG_HOOKS_PARSE_FILE c_common_parse_file #undef LANG_HOOKS_FINISH_INCOMPLETE_DECL diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index fa5bc97..19c17be 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2009-09-01 Richard Guenther + + * cp-objcp-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove. + 2009-08-31 Dodji Seketeli PR debug/30161 diff --git a/gcc/cp/cp-objcp-common.h b/gcc/cp/cp-objcp-common.h index 6723a85..fe8a047 100644 --- a/gcc/cp/cp-objcp-common.h +++ b/gcc/cp/cp-objcp-common.h @@ -58,8 +58,6 @@ extern bool cp_function_decl_explicit_p (tree decl); #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL cxx_dup_lang_specific_decl #undef LANG_HOOKS_SET_DECL_ASSEMBLER_NAME #define LANG_HOOKS_SET_DECL_ASSEMBLER_NAME mangle_decl -#undef LANG_HOOKS_MARK_ADDRESSABLE -#define LANG_HOOKS_MARK_ADDRESSABLE cxx_mark_addressable #undef LANG_HOOKS_PRINT_STATISTICS #define LANG_HOOKS_PRINT_STATISTICS cxx_print_statistics #undef LANG_HOOKS_PRINT_XNODE diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index f690ab1..ac4175a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2009-09-01 Richard Guenther + + * f95-lang.c (gfc_mark_addressable): Remove. + (LANG_HOOKS_MARK_ADDRESSABLE): Likewise. + 2009-08-31 Jerry DeLisle PR fortran/39229 diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index f9d1878..181f0fc 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -94,7 +94,6 @@ static void gfc_init_builtin_functions (void); static bool gfc_init (void); static void gfc_finish (void); static void gfc_print_identifier (FILE *, tree, int); -static bool gfc_mark_addressable (tree); void do_function_end (void); int global_bindings_p (void); static void clear_binding_stack (void); @@ -137,7 +136,6 @@ static void gfc_init_ts (void); #define LANG_HOOKS_POST_OPTIONS gfc_post_options #define LANG_HOOKS_PRINT_IDENTIFIER gfc_print_identifier #define LANG_HOOKS_PARSE_FILE gfc_be_parse_file -#define LANG_HOOKS_MARK_ADDRESSABLE gfc_mark_addressable #define LANG_HOOKS_TYPE_FOR_MODE gfc_type_for_mode #define LANG_HOOKS_TYPE_FOR_SIZE gfc_type_for_size #define LANG_HOOKS_GET_ALIAS_SET gfc_get_alias_set @@ -563,84 +561,6 @@ gfc_init_decl_processing (void) } -/* Mark EXP saying that we need to be able to take the - address of it; it should not be allocated in a register. - In Fortran 95 this is only the case for variables with - the TARGET attribute, but we implement it here for a - likely future Cray pointer extension. - Value is 1 if successful. */ -/* TODO: Check/fix mark_addressable. */ - -bool -gfc_mark_addressable (tree exp) -{ - register tree x = exp; - while (1) - switch (TREE_CODE (x)) - { - case COMPONENT_REF: - case ADDR_EXPR: - case ARRAY_REF: - case REALPART_EXPR: - case IMAGPART_EXPR: - x = TREE_OPERAND (x, 0); - break; - - case CONSTRUCTOR: - TREE_ADDRESSABLE (x) = 1; - return true; - - case VAR_DECL: - case CONST_DECL: - case PARM_DECL: - case RESULT_DECL: - if (DECL_REGISTER (x) && !TREE_ADDRESSABLE (x) && DECL_NONLOCAL (x)) - { - if (TREE_PUBLIC (x)) - { - error ("global register variable %qs used in nested function", - IDENTIFIER_POINTER (DECL_NAME (x))); - return false; - } - pedwarn (input_location, 0, "register variable %qs used in nested function", - IDENTIFIER_POINTER (DECL_NAME (x))); - } - else if (DECL_REGISTER (x) && !TREE_ADDRESSABLE (x)) - { - if (TREE_PUBLIC (x)) - { - error ("address of global register variable %qs requested", - IDENTIFIER_POINTER (DECL_NAME (x))); - return true; - } - -#if 0 - /* If we are making this addressable due to its having - volatile components, give a different error message. Also - handle the case of an unnamed parameter by not trying - to give the name. */ - - else if (C_TYPE_FIELDS_VOLATILE (TREE_TYPE (x))) - { - error ("cannot put object with volatile field into register"); - return false; - } -#endif - - pedwarn (input_location, 0, "address of register variable %qs requested", - IDENTIFIER_POINTER (DECL_NAME (x))); - } - - /* drops in */ - case FUNCTION_DECL: - TREE_ADDRESSABLE (x) = 1; - - default: - return true; - } -} - - /* 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. */ diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 7c1ac22..a291dff 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,9 @@ +2009-09-01 Richard Guenther + + * lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Remove. + * java-tree.h (java_mark_addressable): Likewise. + * typeck.c (java_mark_addressable): Likewise. + 2009-08-17 Ralf Wildenhues * Make-lang.in (java.install-pdf): Install gcj.pdf in diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index 3bdd75a..29027eb 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -988,7 +988,6 @@ struct GTY(()) lang_type { struct eh_range; extern void java_parse_file (int); -extern bool java_mark_addressable (tree); extern tree java_type_for_mode (enum machine_mode, int); extern tree java_type_for_size (unsigned int, int); extern tree java_truthvalue_conversion (tree); diff --git a/gcc/java/lang.c b/gcc/java/lang.c index 4b46270..109ec51 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -129,8 +129,6 @@ struct GTY(()) language_function { #define LANG_HOOKS_POST_OPTIONS java_post_options #undef LANG_HOOKS_PARSE_FILE #define LANG_HOOKS_PARSE_FILE java_parse_file -#undef LANG_HOOKS_MARK_ADDRESSABLE -#define LANG_HOOKS_MARK_ADDRESSABLE java_mark_addressable #undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL #define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL java_dup_lang_specific_decl #undef LANG_HOOKS_DECL_PRINTABLE_NAME diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c index c16976c..1024b7a 100644 --- a/gcc/java/typeck.c +++ b/gcc/java/typeck.c @@ -193,71 +193,6 @@ java_type_for_size (unsigned bits, int unsignedp) return 0; } -/* Mark EXP saying that we need to be able to take the - address of it; it should not be allocated in a register. - Value is true if successful. */ - -bool -java_mark_addressable (tree exp) -{ - tree x = exp; - while (1) - switch (TREE_CODE (x)) - { - case ADDR_EXPR: - case COMPONENT_REF: - case ARRAY_REF: - case REALPART_EXPR: - case IMAGPART_EXPR: - x = TREE_OPERAND (x, 0); - break; - - case TRUTH_ANDIF_EXPR: - case TRUTH_ORIF_EXPR: - case COMPOUND_EXPR: - x = TREE_OPERAND (x, 1); - break; - - case COND_EXPR: - return java_mark_addressable (TREE_OPERAND (x, 1)) - && java_mark_addressable (TREE_OPERAND (x, 2)); - - case CONSTRUCTOR: - TREE_ADDRESSABLE (x) = 1; - return true; - - case INDIRECT_REF: - /* We sometimes add a cast *(TYPE*)&FOO to handle type and mode - incompatibility problems. Handle this case by marking FOO. */ - if (TREE_CODE (TREE_OPERAND (x, 0)) == NOP_EXPR - && TREE_CODE (TREE_OPERAND (TREE_OPERAND (x, 0), 0)) == ADDR_EXPR) - { - x = TREE_OPERAND (TREE_OPERAND (x, 0), 0); - break; - } - if (TREE_CODE (TREE_OPERAND (x, 0)) == ADDR_EXPR) - { - x = TREE_OPERAND (x, 0); - break; - } - return true; - - case VAR_DECL: - case CONST_DECL: - case PARM_DECL: - case RESULT_DECL: - case FUNCTION_DECL: - TREE_ADDRESSABLE (x) = 1; -#if 0 /* poplevel deals with this now. */ - if (DECL_CONTEXT (x) == 0) - TREE_ADDRESSABLE (DECL_ASSEMBLER_NAME (x)) = 1; -#endif - /* drops through */ - default: - return true; - } -} - /* Thorough checking of the arrayness of TYPE. */ int diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h index 25d96e9..afbab6f 100644 --- a/gcc/langhooks-def.h +++ b/gcc/langhooks-def.h @@ -243,7 +243,6 @@ extern tree lhd_make_node (enum tree_code); LANG_HOOKS_MISSING_NORETURN_OK_P, \ LANG_HOOKS_GET_ALIAS_SET, \ LANG_HOOKS_FINISH_INCOMPLETE_DECL, \ - LANG_HOOKS_MARK_ADDRESSABLE, \ LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, \ LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, \ LANG_HOOKS_PRINT_STATISTICS, \ diff --git a/gcc/langhooks.h b/gcc/langhooks.h index d708bb2..4a590de 100644 --- a/gcc/langhooks.h +++ b/gcc/langhooks.h @@ -298,11 +298,6 @@ struct lang_hooks compilation. Default hook is does nothing. */ void (*finish_incomplete_decl) (tree); - /* Mark EXP saying that we need to be able to take the address of - it; it should not be allocated in a register. Return true if - successful. */ - bool (*mark_addressable) (tree); - /* Replace the DECL_LANG_SPECIFIC data, which may be NULL, of the DECL_NODE with a newly GC-allocated copy. */ void (*dup_lang_specific_decl) (tree); diff --git a/gcc/stmt.c b/gcc/stmt.c index fe60ba6..0a36e10 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -737,7 +737,7 @@ expand_asm_operands (tree string, tree outputs, tree inputs, || (DECL_P (val) && REG_P (DECL_RTL (val)) && GET_MODE (DECL_RTL (val)) != TYPE_MODE (type)))) - lang_hooks.mark_addressable (val); + mark_addressable (val); if (is_inout) ninout++; @@ -766,7 +766,7 @@ expand_asm_operands (tree string, tree outputs, tree inputs, return; if (! allows_reg && allows_mem) - lang_hooks.mark_addressable (TREE_VALUE (tail)); + mark_addressable (TREE_VALUE (tail)); } /* Second pass evaluates arguments. */ diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index 720180c..8de4675 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -890,7 +890,6 @@ tree force_gimple_operand (tree, gimple_seq *, bool, tree); tree force_gimple_operand_gsi (gimple_stmt_iterator *, tree, bool, tree, bool, enum gsi_iterator_update); tree gimple_fold_indirect_ref (tree); -void mark_addressable (tree); /* In tree-ssa-live.c */ extern void remove_unused_locals (void); diff --git a/gcc/tree.h b/gcc/tree.h index 2791830..441612a 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -5157,6 +5157,7 @@ extern bool in_gimple_form; /* In gimple.c. */ extern tree get_base_address (tree t); +extern void mark_addressable (tree); /* In tree-vectorizer.c. */ extern void vect_set_verbosity_level (const char *); -- 2.7.4