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
This commit is contained in:
Kenneth Zadeck 2005-12-19 19:41:35 +00:00 committed by Kenneth Zadeck
parent 780e37d370
commit 0bae56c460
4 changed files with 38 additions and 14 deletions

View File

@ -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

View File

@ -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];

View File

@ -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

View File

@ -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);
}
}