tree.h (DECL_NONLOCAL_FRAME): New macro.

* tree.h (DECL_NONLOCAL_FRAME): New macro.
	* tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in
	DECL_NONLOCAL_FRAME flag.
	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out
	DECL_NONLOCAL_FRAME flag.

From-SVN: r191970
This commit is contained in:
Eric Botcazou 2012-10-02 10:00:32 +00:00
parent 70a6aea0ad
commit 0f1e88429a
5 changed files with 26 additions and 2 deletions

View File

@ -1,3 +1,12 @@
2012-10-02 Eric Botcazou <ebotcazou@adacore.com>
* tree.h (DECL_NONLOCAL_FRAME): New macro.
* tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in
DECL_NONLOCAL_FRAME flag.
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out
DECL_NONLOCAL_FRAME flag.
2012-10-02 Marc Glisse <marc.glisse@inria.fr> 2012-10-02 Marc Glisse <marc.glisse@inria.fr>
* tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
@ -14,10 +23,10 @@
2012-10-01 Dehao Chen <dehao@google.com> 2012-10-01 Dehao Chen <dehao@google.com>
PR middle-end/54759 PR middle-end/54759
* gcc/tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use
LOCATION_LOCUS to compare with UNKNOWN_LOCATION. LOCATION_LOCUS to compare with UNKNOWN_LOCATION.
(slpeel_tree_peel_loop_to_edge): Likewise. (slpeel_tree_peel_loop_to_edge): Likewise.
* gcc/tree-vectorizer.c (vectorize_loops): Likewise. * tree-vectorizer.c (vectorize_loops): Likewise.
2012-10-01 Andrew MacLeod <amacleod@redhat.com> 2012-10-01 Andrew MacLeod <amacleod@redhat.com>

View File

@ -235,6 +235,7 @@ get_frame_type (struct nesting_info *info)
info->frame_type = type; info->frame_type = type;
info->frame_decl = create_tmp_var_for (info, type, "FRAME"); info->frame_decl = create_tmp_var_for (info, type, "FRAME");
DECL_NONLOCAL_FRAME (info->frame_decl) = 1;
/* ??? Always make it addressable for now, since it is meant to /* ??? Always make it addressable for now, since it is meant to
be pointed to by the static chain pointer. This pessimizes be pointed to by the static chain pointer. This pessimizes

View File

@ -216,6 +216,9 @@ unpack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
expr->decl_common.off_align = bp_unpack_value (bp, 8); expr->decl_common.off_align = bp_unpack_value (bp, 8);
} }
if (TREE_CODE (expr) == VAR_DECL)
DECL_NONLOCAL_FRAME (expr) = (unsigned) bp_unpack_value (bp, 1);
if (TREE_CODE (expr) == RESULT_DECL if (TREE_CODE (expr) == RESULT_DECL
|| TREE_CODE (expr) == PARM_DECL || TREE_CODE (expr) == PARM_DECL
|| TREE_CODE (expr) == VAR_DECL) || TREE_CODE (expr) == VAR_DECL)

View File

@ -181,6 +181,9 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr)
bp_pack_value (bp, expr->decl_common.off_align, 8); bp_pack_value (bp, expr->decl_common.off_align, 8);
} }
if (TREE_CODE (expr) == VAR_DECL)
bp_pack_value (bp, DECL_NONLOCAL_FRAME (expr), 1);
if (TREE_CODE (expr) == RESULT_DECL if (TREE_CODE (expr) == RESULT_DECL
|| TREE_CODE (expr) == PARM_DECL || TREE_CODE (expr) == PARM_DECL
|| TREE_CODE (expr) == VAR_DECL) || TREE_CODE (expr) == VAR_DECL)

View File

@ -712,6 +712,9 @@ struct GTY(()) tree_base {
SSA_NAME_IS_DEFAULT_DEF in SSA_NAME_IS_DEFAULT_DEF in
SSA_NAME SSA_NAME
DECL_NONLOCAL_FRAME in
VAR_DECL
*/ */
struct GTY(()) tree_typed { struct GTY(()) tree_typed {
@ -3270,9 +3273,14 @@ extern void decl_fini_priority_insert (tree, priority_type);
libraries. */ libraries. */
#define MAX_RESERVED_INIT_PRIORITY 100 #define MAX_RESERVED_INIT_PRIORITY 100
/* In a VAR_DECL, nonzero if this is a global variable for VOPs. */
#define VAR_DECL_IS_VIRTUAL_OPERAND(NODE) \ #define VAR_DECL_IS_VIRTUAL_OPERAND(NODE) \
(VAR_DECL_CHECK (NODE)->base.u.bits.saturating_flag) (VAR_DECL_CHECK (NODE)->base.u.bits.saturating_flag)
/* In a VAR_DECL, nonzero if this is a non-local frame structure. */
#define DECL_NONLOCAL_FRAME(NODE) \
(VAR_DECL_CHECK (NODE)->base.default_def_flag)
struct GTY(()) tree_var_decl { struct GTY(()) tree_var_decl {
struct tree_decl_with_vis common; struct tree_decl_with_vis common;
}; };