diff options
author | Kenneth Zadeck <zadeck@naturalbridge.com> | 2005-12-19 19:41:35 +0000 |
---|---|---|
committer | Kenneth Zadeck <zadeck@gcc.gnu.org> | 2005-12-19 19:41:35 +0000 |
commit | 0bae56c4603aa45147cac966e83d264df65847e8 (patch) | |
tree | c46c9b5308e74e071df21b1b6676596c08d9ecfe /gcc | |
parent | 780e37d3707df53431bda25acc03a29dd9ae9a0b (diff) | |
download | gcc-0bae56c4603aa45147cac966e83d264df65847e8.zip gcc-0bae56c4603aa45147cac966e83d264df65847e8.tar.gz gcc-0bae56c4603aa45147cac966e83d264df65847e8.tar.bz2 |
df.c (df_analyze_1, [...]): Corrected basic block number calculations for changes in entry and exit numbering.
2005-12-19 Kenneth Zadeck <zadeck@naturalbridge.com>
* df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
Corrected basic block number calculations for changes in entry and
exit numbering.
2005-12-19 Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.c-torture/compile/pr25483 : New test.
From-SVN: r108805
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/df.c | 28 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr25483.c | 15 |
4 files changed, 38 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9780498..aeddaca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-12-19 Kenneth Zadeck <zadeck@naturalbridge.com> + * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow): + Corrected basic block number calculations for changes in entry and + exit numbering. + 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz> * tree-flow.h (struct var_ann_d): Change type of @@ -1992,9 +1992,9 @@ df_analyze_1 (struct df *df, bitmap blocks, int flags, int update) df_reg_use_chain_create (df, blocks, false); } - df->dfs_order = xmalloc (sizeof (int) * n_basic_blocks); - df->rc_order = xmalloc (sizeof (int) * n_basic_blocks); - df->rts_order = xmalloc (sizeof (int) * n_basic_blocks); + df->dfs_order = xmalloc (sizeof (int) * n_basic_blocks - NUM_FIXED_BLOCKS); + df->rc_order = xmalloc (sizeof (int) * n_basic_blocks - NUM_FIXED_BLOCKS); + df->rts_order = xmalloc (sizeof (int) * n_basic_blocks - NUM_FIXED_BLOCKS); flow_depth_first_order_compute (df->dfs_order, df->rc_order); flow_reverse_top_sort_order_compute (df->rts_order); @@ -2019,7 +2019,7 @@ df_analyze_1 (struct df *df, bitmap blocks, int flags, int update) dflow.dir = DF_FORWARD; dflow.conf_op = DF_UNION; dflow.transfun = df_rd_transfer_function; - dflow.n_blocks = n_basic_blocks; + dflow.n_blocks = n_basic_blocks - NUM_FIXED_BLOCKS; dflow.order = df->rc_order; dflow.data = NULL; @@ -2062,7 +2062,7 @@ df_analyze_1 (struct df *df, bitmap blocks, int flags, int update) dflow.dir = DF_BACKWARD; dflow.conf_op = DF_UNION; dflow.transfun = df_ru_transfer_function; - dflow.n_blocks = n_basic_blocks; + dflow.n_blocks = n_basic_blocks - NUM_FIXED_BLOCKS; dflow.order = df->rts_order; dflow.data = NULL; @@ -2108,7 +2108,7 @@ df_analyze_1 (struct df *df, bitmap blocks, int flags, int update) dflow.dir = DF_BACKWARD; dflow.conf_op = DF_UNION; dflow.transfun = df_lr_transfer_function; - dflow.n_blocks = n_basic_blocks; + dflow.n_blocks = n_basic_blocks - NUM_FIXED_BLOCKS; dflow.order = df->rts_order; dflow.data = NULL; @@ -2420,16 +2420,16 @@ df_analyze_subcfg (struct df *df, bitmap blocks, int flags) df_reg_use_chain_create (df, blocks, true); } - df->dfs_order = xmalloc (sizeof (int) * n_basic_blocks); - df->rc_order = xmalloc (sizeof (int) * n_basic_blocks); - df->rts_order = xmalloc (sizeof (int) * n_basic_blocks); + df->dfs_order = xmalloc (sizeof (int) * n_basic_blocks - NUM_FIXED_BLOCKS); + df->rc_order = xmalloc (sizeof (int) * n_basic_blocks - NUM_FIXED_BLOCKS); + df->rts_order = xmalloc (sizeof (int) * n_basic_blocks - NUM_FIXED_BLOCKS); flow_depth_first_order_compute (df->dfs_order, df->rc_order); flow_reverse_top_sort_order_compute (df->rts_order); - n_blocks = prune_to_subcfg (df->dfs_order, n_basic_blocks, blocks); - prune_to_subcfg (df->rc_order, n_basic_blocks, blocks); - prune_to_subcfg (df->rts_order, n_basic_blocks, blocks); + n_blocks = prune_to_subcfg (df->dfs_order, n_basic_blocks - NUM_FIXED_BLOCKS, blocks); + prune_to_subcfg (df->rc_order, n_basic_blocks - NUM_FIXED_BLOCKS, blocks); + prune_to_subcfg (df->rts_order, n_basic_blocks - NUM_FIXED_BLOCKS, blocks); dflow.in = xmalloc (sizeof (bitmap) * last_basic_block); dflow.out = xmalloc (sizeof (bitmap) * last_basic_block); @@ -3925,7 +3925,7 @@ iterative_dataflow (struct dataflow *dataflow) sbitmap_zero (visited); sbitmap_zero (considered); - for (i = 0; i < dataflow->n_blocks - NUM_FIXED_BLOCKS; i++) + for (i = 0; i < dataflow->n_blocks; i++) { idx = dataflow->order[i]; SET_BIT (pending, idx); @@ -3940,7 +3940,7 @@ iterative_dataflow (struct dataflow *dataflow) while (1) { - for (i = 0; i < dataflow->n_blocks - NUM_FIXED_BLOCKS ; i++) + for (i = 0; i < dataflow->n_blocks; i++) { idx = dataflow->order[i]; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d4bcb6a..91b7f63 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2005-12-19 Kenneth Zadeck <zadeck@naturalbridge.com> + + * gcc.c-torture/compile/pr25483 : New test. + 2005-12-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de> PR c++/20552 diff --git a/gcc/testsuite/gcc.c-torture/compile/pr25483.c b/gcc/testsuite/gcc.c-torture/compile/pr25483.c new file mode 100644 index 0000000..c5b7ed81 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr25483.c @@ -0,0 +1,15 @@ +/* { dg-options "-O -fmove-loop-invariants" } */ + +static int mdct_win[8]; +int x; + +int +decode_init (double d) +{ + int j; + for (j = 4; j; j--) + { + d *= 0.5; + mdct_win[j] = (d * 3); + } +} |