diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-29 12:20:39 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-29 12:20:39 +0000 |
commit | 8115f0afdaff380da01d555b0584cd0fceb789b8 (patch) | |
tree | e708803ab158cd132fb494655ffed7aec0ca820d /gcc/tree.h | |
parent | a000e0d1225afc60305711a6dd3a5bd9ebc4ddd6 (diff) | |
download | gcc-8115f0afdaff380da01d555b0584cd0fceb789b8.tar.gz |
2009-06-29 Richard Guenther <rguenther@suse.de>
PR middle-end/38212
* alias.c (find_base_decl): Remove.
(get_deref_alias_set_1): Remove restrict handling.
* c-common.c (c_apply_type_quals_to_decl): Do not set
DECL_POINTER_ALIAS_SET.
* gimplify.c (find_single_pointer_decl_1): Remove.
(find_single_pointer_decl): Likewise.
(internal_get_tmp_var): Remove restrict handling.
(gimple_regimplify_operands): Likewise.
* omp-low.c (expand_omp_atomic_pipeline): Do not set
DECL_POINTER_ALIAS_SET. Use ref-all pointers.
* print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
* tree.c (restrict_base_for_decl): Remove.
(init_ttree): Do not allocate it.
(make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
LABEL_DECL_UID for label decls.
(copy_node_stat): Do not copy restrict information.
(decl_restrict_base_lookup): Remove.
(decl_restrict_base_insert): Likewise.
(print_restrict_base_statistics): Likewise.
(dump_tree_statistics): Do not call print_restrict_base_statistics.
* tree.h (DECL_POINTER_ALIAS_SET): Remove.
(DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
(struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
(LABEL_DECL_UID): Adjust.
(DECL_BASED_ON_RESTRICT_P): Remove.
(DECL_GET_RESTRICT_BASE): Likewise.
(SET_DECL_RESTRICT_BASE): Likewise.
(struct tree_decl_with_vis): Remove based_on_restrict_p flag.
* config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
instead of DECL_POINTER_ALIAS_SET.
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
* config/s390/s390.c (s390_gimplify_va_arg): Likewise.
* config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
* gcc.c-torture/execute/pr38212.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149047 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 50 |
1 files changed, 12 insertions, 38 deletions
diff --git a/gcc/tree.h b/gcc/tree.h index 8aabf79cebe..3a748a7fefa 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -2565,16 +2565,6 @@ struct GTY(()) tree_decl_minimal { #define DECL_LANG_FLAG_6(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_6) #define DECL_LANG_FLAG_7(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.lang_flag_7) -/* Used to indicate an alias set for the memory pointed to by this - particular FIELD_DECL, PARM_DECL, or VAR_DECL, which must have - pointer (or reference) type. */ -#define DECL_POINTER_ALIAS_SET(NODE) \ - (DECL_COMMON_CHECK (NODE)->decl_common.pointer_alias_set) - -/* Nonzero if an alias set has been assigned to this declaration. */ -#define DECL_POINTER_ALIAS_SET_KNOWN_P(NODE) \ - (DECL_POINTER_ALIAS_SET (NODE) != - 1) - /* Nonzero for a decl which is at file scope. */ #define DECL_FILE_SCOPE_P(EXP) \ (! DECL_CONTEXT (EXP) \ @@ -2646,7 +2636,7 @@ struct GTY(()) tree_decl_common { /* DECL_ALIGN. It should have the same size as TYPE_ALIGN. */ unsigned int align; - alias_set_type pointer_alias_set; + int label_decl_uid; /* Points to a structure whose details depend on the language in use. */ struct lang_decl *lang_specific; }; @@ -2776,7 +2766,7 @@ struct GTY(()) tree_field_decl { dense, unique within any one function, and may be used to index arrays. If the value is -1, then no UID has been assigned. */ #define LABEL_DECL_UID(NODE) \ - (LABEL_DECL_CHECK (NODE)->decl_common.pointer_alias_set) + (LABEL_DECL_CHECK (NODE)->decl_common.label_decl_uid) /* In LABEL_DECL nodes, nonzero means that an error message about jumping into such a binding contour has been printed for this label. */ @@ -2828,21 +2818,6 @@ struct GTY(()) tree_parm_decl { /* Used to indicate that the DECL is a dllimport. */ #define DECL_DLLIMPORT_P(NODE) (DECL_WITH_VIS_CHECK (NODE)->decl_with_vis.dllimport_flag) -/* DECL_BASED_ON_RESTRICT_P records whether a VAR_DECL is a temporary - based on a variable with a restrict qualified type. If it is, - DECL_RESTRICT_BASE returns the restrict qualified variable on which - it is based. */ - -#define DECL_BASED_ON_RESTRICT_P(NODE) \ - (VAR_DECL_CHECK (NODE)->decl_with_vis.based_on_restrict_p) -#define DECL_GET_RESTRICT_BASE(NODE) \ - (decl_restrict_base_lookup (VAR_DECL_CHECK (NODE))) -#define SET_DECL_RESTRICT_BASE(NODE, VAL) \ - (decl_restrict_base_insert (VAR_DECL_CHECK (NODE), (VAL))) - -extern tree decl_restrict_base_lookup (tree); -extern void decl_restrict_base_insert (tree, tree); - /* Used in a DECL to indicate that, even if it TREE_PUBLIC, it need not be put out unless it is needed in this translation unit. Entities like this are shared across translation units (like weak @@ -2933,28 +2908,27 @@ struct GTY(()) tree_decl_with_vis { tree comdat_group; /* Belong to VAR_DECL exclusively. */ - unsigned defer_output:1; - unsigned hard_register:1; - unsigned thread_local:1; - unsigned common_flag:1; + unsigned defer_output : 1; + unsigned hard_register : 1; + unsigned thread_local : 1; + unsigned common_flag : 1; unsigned in_text_section : 1; unsigned dllimport_flag : 1; - unsigned based_on_restrict_p : 1; /* Used by C++. Might become a generic decl flag. */ unsigned shadowed_for_var_p : 1; - /* Don't belong to VAR_DECL exclusively. */ - unsigned weak_flag:1; + unsigned weak_flag : 1; + unsigned seen_in_bind_expr : 1; unsigned comdat_flag : 1; ENUM_BITFIELD(symbol_visibility) visibility : 2; unsigned visibility_specified : 1; - /* Belong to FUNCTION_DECL exclusively. */ - unsigned init_priority_p:1; - /* Belongs to VAR_DECL exclusively. */ ENUM_BITFIELD(tls_model) tls_model : 3; - /* 14 unused bits. */ + + /* Belong to FUNCTION_DECL exclusively. */ + unsigned init_priority_p : 1; + /* 15 unused bits. */ }; /* In a VAR_DECL that's static, |