aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloop.h
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2004-06-20 21:31:32 +0000
committerZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2004-06-20 21:31:32 +0000
commitd2de2b59df3933e543b83fd8e2d7f96801d8111a (patch)
treeba006d95fa2c6cd2214ff0411ebeceffe1b217d0 /gcc/cfgloop.h
parent31b89253a3dd1ad745f7629c76005df780525f7b (diff)
* loop-invariant.c: New file.
* Makefile.in (loop-invariant.o): New. * cfgloop.h (global_cost_for_size, init_set_costs, move_loop_invariants): Declare. * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New functions. (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New variables. * common.opt (floop-optimize2, fmove-loop-invariants): New options. * loop-init.c (loop_optimizer_init): Call init_set_costs. * passes.c (rest_of_handle_loop2): Call move_loop_invariants. (rest_of_compilation): Check flag_loop_optimize2. * toplev.c (process_options): Handle flag_loop_optimize2. * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document. * doc/passes.texi (loop-invariant.c): Document. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@83419 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgloop.h')
-rw-r--r--gcc/cfgloop.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index e3ac448f371..d73c99b240c 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -411,6 +411,11 @@ simple_loop_desc (struct loop *loop)
return loop->aux;
}
+/* Register pressure estimation for induction variable optimizations & loop
+ invariant motion. */
+extern unsigned global_cost_for_size (unsigned, unsigned, unsigned);
+extern void init_set_costs (void);
+
/* Loop optimizer initialization. */
extern struct loops *loop_optimizer_init (FILE *);
extern void loop_optimizer_finalize (struct loops *, FILE *);
@@ -427,5 +432,6 @@ enum
extern void unroll_and_peel_loops (struct loops *, int);
extern void doloop_optimize_loops (struct loops *);
+extern void move_loop_invariants (struct loops *);
#endif /* GCC_CFGLOOP_H */