]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2013-03-21 Marc Glisse <marc.glisse@inria.fr>
authorglisse <glisse@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Mar 2013 21:11:56 +0000 (21:11 +0000)
committerglisse <glisse@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Mar 2013 21:11:56 +0000 (21:11 +0000)
* tree-pass.h (PROP_gimple_lvec): New.
* passes.c (dump_properties): Handle PROP_gimple_lvec.
(init_optimization_passes): Move pass_lower_vector.
* tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
PROP_gimple_lvec.
(pass_lower_vector): Provide PROP_gimple_lvec.
(pass_lower_vector_ssa): Likewise.
* cfgexpand.c (pass_expand): Require PROP_gimple_lvec.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196890 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cfgexpand.c
gcc/passes.c
gcc/tree-pass.h
gcc/tree-vect-generic.c

index 29425a8156d817fceae99bb1653a53ce2d080990..f06fefff7365c58e63fcc83cd6da34af34988972 100644 (file)
@@ -1,3 +1,14 @@
+2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
+
+       * tree-pass.h (PROP_gimple_lvec): New.
+       * passes.c (dump_properties): Handle PROP_gimple_lvec.
+       (init_optimization_passes): Move pass_lower_vector.
+       * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
+       PROP_gimple_lvec.
+       (pass_lower_vector): Provide PROP_gimple_lvec.
+       (pass_lower_vector_ssa): Likewise.
+       * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
+
 2013-03-21  Mark Wielaard  <mjw@redhat.com>
 
        * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
index 7242b2107f4da2410559d998fc0267a8df1f48a2..771b019c65b12303c45114377cae1d2330aae591 100644 (file)
@@ -4858,7 +4858,8 @@ struct rtl_opt_pass pass_expand =
   0,                                    /* static_pass_number */
   TV_EXPAND,                           /* tv_id */
   PROP_ssa | PROP_gimple_leh | PROP_cfg
-    | PROP_gimple_lcx,                 /* properties_required */
+    | PROP_gimple_lcx
+    | PROP_gimple_lvec,                        /* properties_required */
   PROP_rtl,                             /* properties_provided */
   PROP_ssa | PROP_trees,               /* properties_destroyed */
   TODO_verify_ssa | TODO_verify_flow
index 5f9330672fce09d7666a10bbd5eafe78b10c6f32..a47e092ea23be234c5b4d3018cb579f21873c1b1 100644 (file)
@@ -1310,7 +1310,6 @@ init_optimization_passes (void)
       NEXT_PASS (pass_expand_omp);
 
       NEXT_PASS (pass_build_ssa);
-      NEXT_PASS (pass_lower_vector);
       NEXT_PASS (pass_early_warn_uninitialized);
       NEXT_PASS (pass_rebuild_cgraph_edges);
       NEXT_PASS (pass_inline_parameters);
@@ -1554,6 +1553,7 @@ init_optimization_passes (void)
       NEXT_PASS (pass_tm_memopt);
       NEXT_PASS (pass_tm_edges);
     }
+  NEXT_PASS (pass_lower_vector);
   NEXT_PASS (pass_lower_complex_O0);
   NEXT_PASS (pass_asan_O0);
   NEXT_PASS (pass_tsan_O0);
@@ -2771,6 +2771,8 @@ dump_properties (FILE *dump, unsigned int props)
     fprintf (dump, "PROP_gimple_lomp\n");
   if (props & PROP_gimple_lcx)
     fprintf (dump, "PROP_gimple_lcx\n");
+  if (props & PROP_gimple_lvec)
+    fprintf (dump, "PROP_gimple_lvec\n");
   if (props & PROP_cfglayout)
     fprintf (dump, "PROP_cfglayout\n");
 }
index 0c83921f7d29f79074d9028c46556538d5882952..0942ad7793f479f383544e6c219bec82f4f0bbce 100644 (file)
@@ -148,6 +148,7 @@ struct simple_ipa_opt_pass
 #define PROP_cfglayout         (1 << 9)        /* cfglayout mode on RTL */
 #define PROP_gimple_lcx                (1 << 10)       /* lowered complex */
 #define PROP_loops             (1 << 11)       /* preserve loop structures */
+#define PROP_gimple_lvec       (1 << 12)       /* lowered vector */
 
 #define PROP_trees \
   (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp)
index b53ccd1c875b2635038e1f785559d2175393e041..dbad6d97598d30a35f7ab881bf0ffb20c3609463 100644 (file)
@@ -1472,7 +1472,7 @@ expand_vector_operations_1 (gimple_stmt_iterator *gsi)
 static bool
 gate_expand_vector_operations_ssa (void)
 {
-  return optimize == 0;
+  return !(cfun->curr_properties & PROP_gimple_lvec);
 }
 
 static unsigned int
@@ -1513,7 +1513,7 @@ struct gimple_opt_pass pass_lower_vector =
   0,                                   /* static_pass_number */
   TV_NONE,                             /* tv_id */
   PROP_cfg,                            /* properties_required */
-  0,                                   /* properties_provided */
+  PROP_gimple_lvec,                    /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_update_ssa                      /* todo_flags_finish */
@@ -1536,7 +1536,7 @@ struct gimple_opt_pass pass_lower_vector_ssa =
   0,                                   /* static_pass_number */
   TV_NONE,                             /* tv_id */
   PROP_cfg,                            /* properties_required */
-  0,                                   /* properties_provided */
+  PROP_gimple_lvec,                    /* properties_provided */
   0,                                   /* properties_destroyed */
   0,                                   /* todo_flags_start */
   TODO_update_ssa                      /* todo_flags_finish */