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:
parent
e3f9361d49
commit
8bed680964
|
@ -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>
|
2012-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
* doc/sourcebuild.texi: Document arm_v8_vfp_ok.
|
* doc/sourcebuild.texi: Document arm_v8_vfp_ok.
|
||||||
|
|
14
gcc/alias.c
14
gcc/alias.c
|
@ -2237,19 +2237,9 @@ nonoverlapping_component_refs_p (const_rtx rtlx, const_rtx rtly)
|
||||||
|
|
||||||
found:
|
found:
|
||||||
/* If we're left with accessing different fields of a structure, then no
|
/* If we're left with accessing different fields of a structure, then no
|
||||||
possible overlap, unless they are both true bitfields, i.e. bitfields
|
possible overlap, unless they are both bitfields. */
|
||||||
for which the size isn't a multiple of the (memory) unit. */
|
|
||||||
if (TREE_CODE (typex) == RECORD_TYPE && fieldx != fieldy)
|
if (TREE_CODE (typex) == RECORD_TYPE && fieldx != fieldy)
|
||||||
{
|
return !(DECL_BIT_FIELD (fieldx) && DECL_BIT_FIELD (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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The comparison on the current field failed. If we're accessing
|
/* The comparison on the current field failed. If we're accessing
|
||||||
a very nested structure, look at the next outer level. */
|
a very nested structure, look at the next outer level. */
|
||||||
|
|
|
@ -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>
|
2012-11-26 Janus Weil <janus@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/54997
|
PR fortran/54997
|
||||||
|
|
|
@ -611,12 +611,6 @@ gfc_finish_var_decl (tree decl, gfc_symbol * sym)
|
||||||
if (sym->attr.threadprivate
|
if (sym->attr.threadprivate
|
||||||
&& (TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
|
&& (TREE_STATIC (decl) || DECL_EXTERNAL (decl)))
|
||||||
DECL_TLS_MODEL (decl) = decl_default_tls_model (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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -296,7 +296,6 @@ new_emutls_decl (tree decl, tree alias_of)
|
||||||
DECL_WEAK (to) = DECL_WEAK (decl);
|
DECL_WEAK (to) = DECL_WEAK (decl);
|
||||||
DECL_VISIBILITY (to) = DECL_VISIBILITY (decl);
|
DECL_VISIBILITY (to) = DECL_VISIBILITY (decl);
|
||||||
DECL_VISIBILITY_SPECIFIED (to) = DECL_VISIBILITY_SPECIFIED (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_DLLIMPORT_P (to) = DECL_DLLIMPORT_P (decl);
|
||||||
|
|
||||||
DECL_ATTRIBUTES (to) = targetm.merge_decl_attributes (decl, to);
|
DECL_ATTRIBUTES (to) = targetm.merge_decl_attributes (decl, to);
|
||||||
|
|
|
@ -236,7 +236,6 @@ unpack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
|
||||||
if (TREE_CODE (expr) == VAR_DECL
|
if (TREE_CODE (expr) == VAR_DECL
|
||||||
|| TREE_CODE (expr) == PARM_DECL)
|
|| TREE_CODE (expr) == PARM_DECL)
|
||||||
DECL_HAS_VALUE_EXPR_P (expr) = (unsigned) bp_unpack_value (bp, 1);
|
DECL_HAS_VALUE_EXPR_P (expr) = (unsigned) bp_unpack_value (bp, 1);
|
||||||
DECL_RESTRICTED_P (expr) = (unsigned) bp_unpack_value (bp, 1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -202,7 +202,6 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
|
||||||
if (TREE_CODE (expr) == VAR_DECL
|
if (TREE_CODE (expr) == VAR_DECL
|
||||||
|| TREE_CODE (expr) == PARM_DECL)
|
|| TREE_CODE (expr) == PARM_DECL)
|
||||||
bp_pack_value (bp, DECL_HAS_VALUE_EXPR_P (expr), 1);
|
bp_pack_value (bp, DECL_HAS_VALUE_EXPR_P (expr), 1);
|
||||||
bp_pack_value (bp, DECL_RESTRICTED_P (expr), 1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
31
gcc/tree.h
31
gcc/tree.h
|
@ -1321,18 +1321,13 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
|
||||||
(TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
|
(TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \
|
||||||
RESULT_DECL)->decl_common.decl_by_reference_flag)
|
RESULT_DECL)->decl_common.decl_by_reference_flag)
|
||||||
|
|
||||||
/* In a RESULT_DECL, PARM_DECL and VAR_DECL, means that this decl
|
/* In VAR_DECL and PARM_DECL, set when the decl has been used except for
|
||||||
can be used as restricted tag to disambiguate against other restrict
|
being set. */
|
||||||
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)
|
|
||||||
|
|
||||||
#define DECL_READ_P(NODE) \
|
#define DECL_READ_P(NODE) \
|
||||||
(TREE_CHECK2 (NODE, VAR_DECL, PARM_DECL)->decl_common.decl_read_flag)
|
(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) \
|
#define DECL_NONSHAREABLE(NODE) \
|
||||||
(TREE_CHECK2 (NODE, VAR_DECL, \
|
(TREE_CHECK2 (NODE, VAR_DECL, \
|
||||||
RESULT_DECL)->decl_common.decl_nonshareable_flag)
|
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. */
|
get one debug info record for them. */
|
||||||
#define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
|
#define TYPE_STUB_DECL(NODE) (TREE_CHAIN (TYPE_CHECK (NODE)))
|
||||||
|
|
||||||
/* In a RECORD_TYPE, UNION_TYPE or QUAL_UNION_TYPE, it means the type
|
/* In a RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE or ARRAY_TYPE, it means
|
||||||
has BLKmode only because it lacks the alignment requirement for
|
the type has BLKmode only because it lacks the alignment required for
|
||||||
its size. */
|
its size. */
|
||||||
#define TYPE_NO_FORCE_BLK(NODE) \
|
#define TYPE_NO_FORCE_BLK(NODE) \
|
||||||
(TYPE_CHECK (NODE)->type_common.no_force_blk_flag)
|
(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
|
In VAR_DECL, PARM_DECL and RESULT_DECL, this is
|
||||||
DECL_HAS_VALUE_EXPR_P. */
|
DECL_HAS_VALUE_EXPR_P. */
|
||||||
unsigned decl_flag_2 : 1;
|
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
|
/* Logically, these two would go in a theoretical base shared by var and
|
||||||
parm decl. */
|
parm decl. */
|
||||||
unsigned gimple_reg_flag : 1;
|
unsigned gimple_reg_flag : 1;
|
||||||
/* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_BY_REFERENCE. */
|
/* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_BY_REFERENCE. */
|
||||||
unsigned decl_by_reference_flag : 1;
|
unsigned decl_by_reference_flag : 1;
|
||||||
/* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_RESTRICTED_P. */
|
/* In a VAR_DECL and PARM_DECL, this is DECL_READ_P. */
|
||||||
unsigned decl_restricted_flag : 1;
|
|
||||||
|
|
||||||
/* In VAR_DECL and PARM_DECL set when the decl has been used except for
|
|
||||||
being set. */
|
|
||||||
unsigned decl_read_flag : 1;
|
unsigned decl_read_flag : 1;
|
||||||
|
/* In a VAR_DECL or RESULT_DECL, this is DECL_NONSHAREABLE. */
|
||||||
/* In VAR_DECL or RESULT_DECL set when significant code movement precludes
|
|
||||||
attempting to share the stack slot with some other variable. */
|
|
||||||
unsigned decl_nonshareable_flag : 1;
|
unsigned decl_nonshareable_flag : 1;
|
||||||
|
|
||||||
/* DECL_OFFSET_ALIGN, used only for FIELD_DECLs. */
|
/* DECL_OFFSET_ALIGN, used only for FIELD_DECLs. */
|
||||||
unsigned int off_align : 8;
|
unsigned int off_align : 8;
|
||||||
|
|
||||||
/* 24-bits unused. */
|
/* 24 bits unused. */
|
||||||
|
|
||||||
/* DECL_ALIGN. It should have the same size as TYPE_ALIGN. */
|
/* DECL_ALIGN. It should have the same size as TYPE_ALIGN. */
|
||||||
unsigned int align;
|
unsigned int align;
|
||||||
|
|
Loading…
Reference in New Issue