aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloop.h
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2004-06-20 23:31:32 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2004-06-20 21:31:32 +0000
commit5e96277660887473bdc8b1953fcc35aedd092e3a (patch)
treeba006d95fa2c6cd2214ff0411ebeceffe1b217d0 /gcc/cfgloop.h
parent2e24fa83ab8d4c5c532e98f0fd005e4f20c833fc (diff)
downloadgcc-5e96277660887473bdc8b1953fcc35aedd092e3a.zip
gcc-5e96277660887473bdc8b1953fcc35aedd092e3a.tar.gz
gcc-5e96277660887473bdc8b1953fcc35aedd092e3a.tar.bz2
loop-invariant.c: New file.
* 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. From-SVN: r83419
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 e3ac448..d73c99b 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 */