diff options
author | Daniel Berlin <dberlin@gcc.gnu.org> | 2005-01-30 19:08:37 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@gcc.gnu.org> | 2005-01-30 19:08:37 +0000 |
commit | 0fc6c49280e515d2c1041919eae90b0bca864c81 (patch) | |
tree | 0a91c97f68df2f3505e7df5458a6291a47382478 /gcc/version.c | |
parent | 61e067ccd8ae13ecb20fda63a7c1d94bb28ec71f (diff) | |
download | gcc-0fc6c49280e515d2c1041919eae90b0bca864c81.zip gcc-0fc6c49280e515d2c1041919eae90b0bca864c81.tar.gz gcc-0fc6c49280e515d2c1041919eae90b0bca864c81.tar.bz2 |
re PR tree-optimization/19624 (PRE pessimizes ivopts)
2005-01-30 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/19624
* Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
* tree-ssa-pre.c: Add cfgloop.h.
Update comment.
(pre_stats): New member, constified.
(inserted_exprs): New static variable.
(NECESSARY): New macro.
(create_expression_by_pieces): Fold the expression, and
mark it as defaulting to not necessary. Also put in
inserted_exprs.
(fully_constant_expression): New function.
(insert_into_preds_of_block): Modify to not insert phis when we
are playing with induction variables.
Push phis onto the inserted_exprs vector, and mark them as not
necessary by default.
(insert_aux): Call fully_constant_expression on eprime.
If all edges produce the same value, mark it constant.
(mark_operand_necessary): New function.
(remove_dead_inserted_code): New function.
(init_pre): Init loop optimizer to get loop info.
(fini_pre): Free loop_optimizer, and inserted_exprs vec.
(execute_pre): Commit edge inserts, then remove dead code.
From-SVN: r94448
Diffstat (limited to 'gcc/version.c')
0 files changed, 0 insertions, 0 deletions