]> gcc.gnu.org Git - gcc.git/commitdiff
Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
authorRichard Biener <rguenther@suse.de>
Tue, 18 Jun 2013 14:14:00 +0000 (14:14 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 18 Jun 2013 14:14:00 +0000 (14:14 +0000)
2013-06-18  Richard Biener  <rguenther@suse.de>

* Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
* cgraphunit.c: Include cfgloop.h.
(init_lowered_empty_function): Initialize the loop tree.
(assemble_thunk): Insert new BBs into loops.

From-SVN: r200169

gcc/ChangeLog
gcc/Makefile.in
gcc/cgraphunit.c

index 94a19edca5bbb3256a55e7cb354cdfa7ed9e7244..4f0abd314cb176f80b10d47bde9676576846a856 100644 (file)
@@ -1,3 +1,10 @@
+2013-06-18  Richard Biener  <rguenther@suse.de>
+
+       * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
+       * cgraphunit.c: Include cfgloop.h.
+       (init_lowered_empty_function): Initialize the loop tree.
+       (assemble_thunk): Insert new BBs into loops.
+
 2013-06-18  Richard Biener  <rguenther@suse.de>
 
        * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
index 17efd4eb2fd31a04013714c143378728c7465c72..ea18292907bf309cf0f277288ae8ab873511d625 100644 (file)
@@ -2903,7 +2903,7 @@ cgraphunit.o : cgraphunit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
    $(TREE_FLOW_H) $(TREE_PASS_H) debug.h $(DIAGNOSTIC_H) \
    $(FIBHEAP_H) output.h $(PARAMS_H) $(RTL_H) $(IPA_PROP_H) \
    gt-cgraphunit.h tree-iterator.h $(COVERAGE_H) $(TREE_DUMP_H) \
-   $(GIMPLE_PRETTY_PRINT_H) $(IPA_INLINE_H) $(IPA_UTILS_H) \
+   $(GIMPLE_PRETTY_PRINT_H) $(IPA_INLINE_H) $(IPA_UTILS_H) $(CFGLOOP_H) \
    $(LTO_STREAMER_H) output.h $(REGSET_H) $(EXCEPT_H) $(GCC_PLUGIN_H) plugin.h
 cgraphclones.o : cgraphclones.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
    $(TREE_H) langhooks.h $(TREE_INLINE_H) toplev.h $(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(GGC_H) \
index 016a6e43fa98e1b9be695eb43b694de4f52277f2..51365eb167fcd5b4ef7b54b8f793183c2b903ecc 100644 (file)
@@ -192,6 +192,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-utils.h"
 #include "lto-streamer.h"
 #include "except.h"
+#include "cfgloop.h"
 #include "regset.h"     /* FIXME: For reg_obstack.  */
 
 /* Queue of cgraph nodes scheduled to be added into cgraph.  This is a
@@ -1196,18 +1197,24 @@ init_lowered_empty_function (tree decl, bool in_ssa)
       init_tree_ssa (cfun);
       init_ssa_operands (cfun);
       cfun->gimple_df->in_ssa_p = true;
+      cfun->curr_properties |= PROP_ssa;
     }
 
   DECL_INITIAL (decl) = make_node (BLOCK);
 
   DECL_SAVED_TREE (decl) = error_mark_node;
-  cfun->curr_properties |=
-    (PROP_gimple_lcf | PROP_gimple_leh | PROP_cfg | PROP_ssa | PROP_gimple_any);
+  cfun->curr_properties |= (PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_any
+                           | PROP_cfg | PROP_loops);
+
+  set_loops_for_fn (cfun, ggc_alloc_cleared_loops ());
+  init_loops_structure (cfun, loops_for_fn (cfun), 1);
+  loops_for_fn (cfun)->state |= LOOPS_MAY_HAVE_MULTIPLE_LATCHES;
 
   /* Create BB for body of the function and connect it properly.  */
   bb = create_basic_block (NULL, (void *) 0, ENTRY_BLOCK_PTR);
-  make_edge (ENTRY_BLOCK_PTR, bb, 0);
+  make_edge (ENTRY_BLOCK_PTR, bb, EDGE_FALLTHRU);
   make_edge (bb, EXIT_BLOCK_PTR, 0);
+  add_bb_to_loop (bb, ENTRY_BLOCK_PTR->loop_father);
 
   return bb;
 }
@@ -1452,6 +1459,9 @@ assemble_thunk (struct cgraph_node *node)
              then_bb = create_basic_block (NULL, (void *) 0, bb);
              return_bb = create_basic_block (NULL, (void *) 0, then_bb);
              else_bb = create_basic_block (NULL, (void *) 0, else_bb);
+             add_bb_to_loop (then_bb, bb->loop_father);
+             add_bb_to_loop (return_bb, bb->loop_father);
+             add_bb_to_loop (else_bb, bb->loop_father);
              remove_edge (single_succ_edge (bb));
              true_label = gimple_block_label (then_bb);
              stmt = gimple_build_cond (NE_EXPR, restmp,
This page took 0.090239 seconds and 5 git commands to generate.