From patchwork Fri Nov 16 17:15:33 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Remove DECL_RESTRICTED_P From: Eric Botcazou X-Patchwork-Id: 199691 Message-Id: <1449961.zzgzbCcOnm@polaris> To: gcc-patches@gcc.gnu.org Date: Fri, 16 Nov 2012 18:15:33 +0100 Hi, that's not really a bugfix, but I don't see the point in keeping this flag, which was already dead in 4.7, one more release. Tested on x86_64-suse-linux, OK for the mainline? 2012-11-16 Eric Botcazou * tree.h (DECL_RESTRICTED_P): Delete. (DECL_READ_P): Add comment. (DECL_NONSHAREABLE): Likewise. (struct tree_decl_common): Remove decl_restricted_flag, add decl_flag_3. * tree-emutls.c (new_emutls_decl): Do not deal with DECL_RESTRICTED_P. * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise. * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. fortran/ * trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P. Index: tree.h =================================================================== --- tree.h (revision 193557) +++ tree.h (working copy) @@ -1324,18 +1324,13 @@ extern void omp_clause_range_check_faile (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \ RESULT_DECL)->decl_common.decl_by_reference_flag) -/* In a RESULT_DECL, PARM_DECL and VAR_DECL, means that this decl - can be used as restricted tag to disambiguate against other restrict - pointers. Used by fortran to capture something like non-addressability - (which it isn't really because the middle-end does take addresses of - such variables). */ -#define DECL_RESTRICTED_P(NODE) \ - (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \ - RESULT_DECL)->decl_common.decl_restricted_flag) - +/* In VAR_DECL and PARM_DECL, set when the decl has been used except for + being set. */ #define DECL_READ_P(NODE) \ (TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_read_flag) +/* In VAR_DECL or RESULT_DECL, set when significant code movement precludes + attempting to share the stack slot with some other variable. */ #define DECL_NONSHAREABLE(NODE) \ (TREE_CHECK2 (NODE, VAR_DECL, \ RESULT_DECL)->decl_common.decl_nonshareable_flag) @@ -2854,26 +2849,22 @@ struct GTY(()) tree_decl_common { In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_HAS_VALUE_EXPR_P. */ unsigned decl_flag_2 : 1; + /* 1 bit unused. */ + unsigned decl_flag_3 : 1; /* Logically, these two would go in a theoretical base shared by var and parm decl. */ unsigned gimple_reg_flag : 1; /* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_BY_REFERENCE. */ unsigned decl_by_reference_flag : 1; - /* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_RESTRICTED_P. */ - unsigned decl_restricted_flag : 1; - - /* In VAR_DECL and PARM_DECL set when the decl has been used except for - being set. */ + /* In a VAR_DECL and PARM_DECL, this is DECL_READ_P. */ unsigned decl_read_flag : 1; - - /* In VAR_DECL or RESULT_DECL set when significant code movement precludes - attempting to share the stack slot with some other variable. */ + /* In a VAR_DECL or RESULT_DECL, this is DECL_NONSHAREABLE. */ unsigned decl_nonshareable_flag : 1; /* DECL_OFFSET_ALIGN, used only for FIELD_DECLs. */ unsigned int off_align : 8; - /* 24-bits unused. */ + /* 24 bits unused. */ /* DECL_ALIGN. It should have the same size as TYPE_ALIGN. */ unsigned int align; Index: tree-emutls.c =================================================================== --- tree-emutls.c (revision 193557) +++ tree-emutls.c (working copy) @@ -295,7 +295,6 @@ new_emutls_decl (tree decl, tree alias_o DECL_WEAK (to) = DECL_WEAK (decl); DECL_VISIBILITY (to) = DECL_VISIBILITY (decl); DECL_VISIBILITY_SPECIFIED (to) = DECL_VISIBILITY_SPECIFIED (decl); - DECL_RESTRICTED_P (to) = DECL_RESTRICTED_P (decl); DECL_DLLIMPORT_P (to) = DECL_DLLIMPORT_P (decl); DECL_ATTRIBUTES (to) = targetm.merge_decl_attributes (decl, to); Index: fortran/trans-decl.c =================================================================== --- fortran/trans-decl.c (revision 193557) +++ fortran/trans-decl.c (working copy) @@ -611,12 +611,6 @@ gfc_finish_var_decl (tree decl, gfc_symb if (sym->attr.threadprivate && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))) DECL_TLS_MODEL (decl) = decl_default_tls_model (decl); - - if (!sym->attr.target - && !sym->attr.pointer - && !sym->attr.cray_pointee - && !sym->attr.proc_pointer) - DECL_RESTRICTED_P (decl) = 1; } Index: tree-streamer-out.c =================================================================== --- tree-streamer-out.c (revision 193557) +++ tree-streamer-out.c (working copy) @@ -202,7 +202,6 @@ pack_ts_decl_common_value_fields (struct if (TREE_CODE (expr) == VAR_DECL || TREE_CODE (expr) == PARM_DECL) bp_pack_value (bp, DECL_HAS_VALUE_EXPR_P (expr), 1); - bp_pack_value (bp, DECL_RESTRICTED_P (expr), 1); } } Index: tree-streamer-in.c =================================================================== --- tree-streamer-in.c (revision 193557) +++ tree-streamer-in.c (working copy) @@ -236,7 +236,6 @@ unpack_ts_decl_common_value_fields (stru if (TREE_CODE (expr) == VAR_DECL || TREE_CODE (expr) == PARM_DECL) DECL_HAS_VALUE_EXPR_P (expr) = (unsigned) bp_unpack_value (bp, 1); - DECL_RESTRICTED_P (expr) = (unsigned) bp_unpack_value (bp, 1); } }