diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2006-01-20 01:46:37 +0100 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2006-01-20 00:46:37 +0000 |
commit | 03fd22151856ff8e57ef209b2e01edc9f76999e0 (patch) | |
tree | f0310ff5933484ccfcb5cd7fb312fb89350141a1 /gcc/df-problems.c | |
parent | b04c90638b1b3042078fda9582f3b3008ce51bc1 (diff) | |
download | gcc-03fd22151856ff8e57ef209b2e01edc9f76999e0.zip gcc-03fd22151856ff8e57ef209b2e01edc9f76999e0.tar.gz gcc-03fd22151856ff8e57ef209b2e01edc9f76999e0.tar.bz2 |
loop-iv.c: Include df.h and hashtab.h.
* loop-iv.c: Include df.h and hashtab.h.
(enum iv_grd_result): New enum.
(DF_REF_IV, DF_REF_IV_SET): New macros.
(struct biv_entry): New.
(df, bivs): New global variables.
(struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
Removed.
(clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
analyzed_for_bivness_p, record_biv): New functions.
(iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
iv_analyze, biv_p, iv_analysis_done): Work with df representation of
UD chains.
(iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
analysed.
(iv_number_of_iterations): Use new interface to iv analysis.
* loop-unroll.c: Do not include varray.h.
(analyze_iv_to_split_insn): Use new interface to iv
analysis.
* loop-unswitch.c (may_unswitch_on): Ditto.
* df.c (df_bitmaps_free): Only work for bbs for that structures are
allocated.
(df_bb_modify): Realloc tables to the new index.
(df_find_use): New function.
* df.h (df_find_use): Declare.
* optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
outmode.
* cfgloop.h (struct rtx_iv): Remove analysed field.
(iv_get_reaching_def): Removed.
(iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
* Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
(loop-iv.o): Add df.h and hashtab.h dependency.
* df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
From-SVN: r110005
Diffstat (limited to 'gcc/df-problems.c')
-rw-r--r-- | gcc/df-problems.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/df-problems.c b/gcc/df-problems.c index c17e048..2a7ec0d 100644 --- a/gcc/df-problems.c +++ b/gcc/df-problems.c @@ -369,12 +369,12 @@ df_ru_alloc (struct dataflow *dflow, bitmap blocks_to_rescan) } } - if (problem_data->use_sites_size > reg_size) + if (problem_data->use_sites_size < reg_size) { problem_data->use_sites - = xrealloc (problem_data->use_sites, reg_size *sizeof (bitmap)); - memset (problem_data->use_sites, 0, - (reg_size - problem_data->use_sites_size) *sizeof (bitmap)); + = xrealloc (problem_data->use_sites, reg_size * sizeof (bitmap)); + memset (problem_data->use_sites + problem_data->use_sites_size, 0, + (reg_size - problem_data->use_sites_size) * sizeof (bitmap)); problem_data->use_sites_size = reg_size; } @@ -876,11 +876,11 @@ df_rd_alloc (struct dataflow *dflow, bitmap blocks_to_rescan) } } - if (problem_data->def_sites_size > reg_size) + if (problem_data->def_sites_size < reg_size) { problem_data->def_sites = xrealloc (problem_data->def_sites, reg_size *sizeof (bitmap)); - memset (problem_data->def_sites, 0, + memset (problem_data->def_sites + problem_data->def_sites_size, 0, (reg_size - problem_data->def_sites_size) *sizeof (bitmap)); problem_data->def_sites_size = reg_size; } |