tree.h (DECL_RESTRICTED_P): Delete.

* tree.h (DECL_RESTRICTED_P): Delete.
	(DECL_READ_P): Add comment.
	(DECL_NONSHAREABLE): Likewise.
	(TYPE_NO_FORCE_BLK): Fix comment.
	(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.

	* alias.c (nonoverlapping_component_refs_p): Fix thinko.

From-SVN: r193815
This commit is contained in:
Eric Botcazou 2012-11-26 13:56:23 +00:00 committed by Eric Botcazou
parent e3f9361d49
commit 8bed680964
8 changed files with 30 additions and 41 deletions

View File

@ -1,3 +1,16 @@
2012-11-26 Eric Botcazou <ebotcazou@adacore.com>
* tree.h (DECL_RESTRICTED_P): Delete.
(DECL_READ_P): Add comment.
(DECL_NONSHAREABLE): Likewise.
(TYPE_NO_FORCE_BLK): Fix comment.
(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.
* alias.c (nonoverlapping_component_refs_p): Fix thinko.
2012-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* doc/sourcebuild.texi: Document arm_v8_vfp_ok.

View File

@ -2237,19 +2237,9 @@ nonoverlapping_component_refs_p (const_rtx rtlx, const_rtx rtly)
found:
/* If we're left with accessing different fields of a structure, then no
possible overlap, unless they are both true bitfields, i.e. bitfields
for which the size isn't a multiple of the (memory) unit. */
possible overlap, unless they are both bitfields. */
if (TREE_CODE (typex) == RECORD_TYPE && fieldx != fieldy)
{
if (!DECL_BIT_FIELD (fieldx) || !DECL_BIT_FIELD (fieldy))
return true;
if ((tree_low_cst (DECL_SIZE (fieldx), 1) % BITS_PER_UNIT) == 0
|| (tree_low_cst (DECL_SIZE (fieldy), 1) % BITS_PER_UNIT) == 0)
return true;
return false;
}
return !(DECL_BIT_FIELD (fieldx) && DECL_BIT_FIELD (fieldy));
/* The comparison on the current field failed. If we're accessing
a very nested structure, look at the next outer level. */

View File

@ -1,3 +1,7 @@
2012-11-26 Eric Botcazou <ebotcazou@adacore.com>
* trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P.
2012-11-26 Janus Weil <janus@gcc.gnu.org>
PR fortran/54997

View File

@ -611,12 +611,6 @@ gfc_finish_var_decl (tree decl, gfc_symbol * sym)
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;
}

View File

@ -296,7 +296,6 @@ new_emutls_decl (tree decl, tree alias_of)
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);

View File

@ -236,7 +236,6 @@ unpack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
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);
}
}

View File

@ -202,7 +202,6 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
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);
}
}

View File

@ -1321,18 +1321,13 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
(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)
@ -2195,8 +2190,8 @@ extern enum machine_mode vector_type_mode (const_tree);
get one debug info record for them. */
#define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
/* In a RECORD_TYPE, UNION_TYPE or QUAL_UNION_TYPE, it means the type
has BLKmode only because it lacks the alignment requirement for
/* In a RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE or ARRAY_TYPE, it means
the type has BLKmode only because it lacks the alignment required for
its size. */
#define TYPE_NO_FORCE_BLK(NODE) \
(TYPE_CHECK (NODE)->type_common.no_force_blk_flag)
@ -2848,26 +2843,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;