]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree.h (DECL_NONLOCAL_FRAME): New macro.
authorEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 2 Oct 2012 10:00:32 +0000 (10:00 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 2 Oct 2012 10:00:32 +0000 (10:00 +0000)
* 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

gcc/ChangeLog
gcc/tree-nested.c
gcc/tree-streamer-in.c
gcc/tree-streamer-out.c
gcc/tree.h

index d73416cadfcf618bd1f605e97b38b8b5668ccf0d..96da759b09933a27e209d2029da145db48bd9e6e 100644 (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>
 
        * tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
 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>
 
index 0b99803615d1c23fde7d15bd48a8b803993cf26d..b4d8688895e76488dace38ef615fec1d3f868fdc 100644 (file)
@@ -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
index f9bee51b01c8390a305d34e215f22ea425cad922..73a81c9c3ccd352872121be3a52e21a7157823c3 100644 (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);
     }
 
+  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)
index 54059a87dabbe0e0301161bc3979bad537fc84d8..63f7a02d5876ea762a7417a2c131a7d2ab68fbdb 100644 (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);
     }
 
+  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)
index 1217cc008dee2b4ece3b4f8db6fe7ac2891ca11e..ff4ae52e2375408f1ac29194cb4265906bfe6a32 100644 (file)
@@ -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;
 };