diff options
author | Richard Biener <rguenther@suse.de> | 2014-01-17 10:47:59 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-01-17 10:47:59 +0000 |
commit | 7be64667c127a0cdb9dc7e4f02dcd7720589919d (patch) | |
tree | 87501164890f5046ea55327b6647afe5ac2c9e28 /gcc/df.h | |
parent | cc3a9f0d477d52982b504c954da0d87d48e6c1f7 (diff) | |
download | gcc-7be64667c127a0cdb9dc7e4f02dcd7720589919d.zip gcc-7be64667c127a0cdb9dc7e4f02dcd7720589919d.tar.gz gcc-7be64667c127a0cdb9dc7e4f02dcd7720589919d.tar.bz2 |
re PR rtl-optimization/38518 (Excessive compile time with -O3)
2014-01-17 Richard Biener <rguenther@suse.de>
PR rtl-optimization/38518
* df.h (df_analyze_loop): Declare.
* df-core.c: Include cfgloop.h.
(df_analyze_1): Split out main part of df_analyze.
(df_analyze): Adjust.
(loop_inverted_post_order_compute): New function.
(loop_post_order_compute): Likewise.
(df_analyze_loop): New function avoiding whole-function
postorder computes.
* loop-invariant.c (find_defs): Use df_analyze_loop.
(find_invariants): Adjust.
* loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
From-SVN: r206702
Diffstat (limited to 'gcc/df.h')
-rw-r--r-- | gcc/df.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -900,7 +900,8 @@ extern void df_set_blocks (bitmap); extern void df_remove_problem (struct dataflow *); extern void df_finish_pass (bool); extern void df_analyze_problem (struct dataflow *, bitmap, int *, int); -extern void df_analyze (void); +extern void df_analyze (); +extern void df_analyze_loop (struct loop *); extern int df_get_n_blocks (enum df_flow_dir); extern int *df_get_postorder (enum df_flow_dir); extern void df_simple_dataflow (enum df_flow_dir, df_init_function, |