diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-05 20:14:59 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-05 20:14:59 +0000 |
commit | c8d055f657b3a033072fca9dc9501bffd927b04d (patch) | |
tree | f9c43362e6fd6ea70ca28c6eb34ce8db0d770637 /gcc/modulo-sched.c | |
parent | dd7622e6d3b955a40e1b8e7973dfedfa57dad5e6 (diff) | |
download | gcc-c8d055f657b3a033072fca9dc9501bffd927b04d.tar.gz |
* tree-vrp.c (cfg_loops): Removed.
(adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
Use current_loops instead of cfg_loops. Pass flags to
loop_optimizer_init.
* cfgloopmanip.c (fix_loop_structure): Update only available
information.
* tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
loop_optimizer_init.
* modulo-sched.c (build_loops_structure): Removed.
(sms_schedule): Use loop_optimizer_init.
* loop-init.c (loop_optimizer_init): Use flags to determine
which properties of loops to prepare.
(rtl_loop_init): Pass flags to loop_optimizer_init.
* tree-ssa-sink.c (execute_sink_code): Ditto.
* tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
* tree-ssa-pre.c (init_pre): Ditto.
* cfgloop.h (LOOPS_NORMAL): New.
(loop_optimizer_init): Declaration changed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110620 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/modulo-sched.c')
-rw-r--r-- | gcc/modulo-sched.c | 43 |
1 files changed, 3 insertions, 40 deletions
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c index f76bcfdab44..52190e0e777 100644 --- a/gcc/modulo-sched.c +++ b/gcc/modulo-sched.c @@ -894,44 +894,6 @@ canon_loop (struct loop *loop) } } -/* Build the loop information without loop - canonization, the loop canonization will - be performed if the loop is SMSable. */ -static struct loops * -build_loops_structure (FILE *dumpfile) -{ - struct loops *loops = XCNEW (struct loops); - - /* Find the loops. */ - - if (flow_loops_find (loops) <= 1) - { - /* No loops. */ - flow_loops_free (loops); - free (loops); - - return NULL; - } - - /* Not going to update these. */ - free (loops->cfg.rc_order); - loops->cfg.rc_order = NULL; - free (loops->cfg.dfs_order); - loops->cfg.dfs_order = NULL; - - create_preheaders (loops, CP_SIMPLE_PREHEADERS); - mark_single_exit_loops (loops); - /* Dump loops. */ - flow_loops_dump (loops, dumpfile, NULL, 1); - -#ifdef ENABLE_CHECKING - verify_dominators (CDI_DOMINATORS); - verify_loop_structure (loops); -#endif - - return loops; -} - /* Main entry point, perform SMS scheduling on the loops of the function that consist of single basic blocks. */ static void @@ -953,10 +915,11 @@ sms_schedule (FILE *dump_file) edge latch_edge; gcov_type trip_count = 0; - if (! (loops = build_loops_structure (dump_file))) + loops = loop_optimizer_init (dump_file, (LOOPS_HAVE_PREHEADERS + | LOOPS_HAVE_MARKED_SINGLE_EXITS)); + if (!loops) return; /* There is no loops to schedule. */ - stats_file = dump_file; /* Initialize issue_rate. */ |