diff options
author | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-10-02 10:00:32 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-10-02 10:00:32 +0000 |
commit | 0f1e88429a98791cd8c5b8d80703fc5f04a80b23 (patch) | |
tree | 7f56c0d30fa7499cd3ec678e78aedbc875ce2c20 | |
parent | 70a6aea0adc11ad0562badf470857b2a615cabba (diff) | |
download | gcc-0f1e88429a98791cd8c5b8d80703fc5f04a80b23.zip gcc-0f1e88429a98791cd8c5b8d80703fc5f04a80b23.tar.gz gcc-0f1e88429a98791cd8c5b8d80703fc5f04a80b23.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/tree-nested.c | 1 | ||||
-rw-r--r-- | gcc/tree-streamer-in.c | 3 | ||||
-rw-r--r-- | gcc/tree-streamer-out.c | 3 | ||||
-rw-r--r-- | gcc/tree.h | 8 |
5 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d73416c..96da759 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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> * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use @@ -14,10 +23,10 @@ 2012-10-01 Dehao Chen <dehao@google.com> 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. (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> diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c index 0b99803..b4d8688 100644 --- a/gcc/tree-nested.c +++ b/gcc/tree-nested.c @@ -235,6 +235,7 @@ get_frame_type (struct nesting_info *info) info->frame_type = type; 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 be pointed to by the static chain pointer. This pessimizes diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c index f9bee51..73a81c9 100644 --- a/gcc/tree-streamer-in.c +++ b/gcc/tree-streamer-in.c @@ -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); } + if (TREE_CODE (expr) == VAR_DECL) + DECL_NONLOCAL_FRAME (expr) = (unsigned) bp_unpack_value (bp, 1); + if (TREE_CODE (expr) == RESULT_DECL || TREE_CODE (expr) == PARM_DECL || TREE_CODE (expr) == VAR_DECL) diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c index 54059a8..63f7a02 100644 --- a/gcc/tree-streamer-out.c +++ b/gcc/tree-streamer-out.c @@ -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); } + if (TREE_CODE (expr) == VAR_DECL) + bp_pack_value (bp, DECL_NONLOCAL_FRAME (expr), 1); + if (TREE_CODE (expr) == RESULT_DECL || TREE_CODE (expr) == PARM_DECL || TREE_CODE (expr) == VAR_DECL) @@ -712,6 +712,9 @@ struct GTY(()) tree_base { SSA_NAME_IS_DEFAULT_DEF in SSA_NAME + + DECL_NONLOCAL_FRAME in + VAR_DECL */ struct GTY(()) tree_typed { @@ -3270,9 +3273,14 @@ extern void decl_fini_priority_insert (tree, priority_type); libraries. */ #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) \ (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 tree_decl_with_vis common; }; |