mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-25 12:05:06 +08:00
re PR tree-optimization/26854 (Inordinate compile times on large routines)
PR tree-optimization/26854 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when checking for zero or one use. * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly. * tree-cfgcleanup.c (merge_phi_nodes): Similarly. * tree-ssa-reassoc.c (negate_value): Similarly. (reassociate_bb): Similarly. From-SVN: r113120
This commit is contained in:
parent
45c792f50b
commit
bfc646bfc0
@ -1,3 +1,13 @@
|
||||
2006-04-20 Jeff Law <law@redhat.com>
|
||||
|
||||
PR tree-optimization/26854
|
||||
* tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
|
||||
checking for zero or one use.
|
||||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
|
||||
* tree-cfgcleanup.c (merge_phi_nodes): Similarly.
|
||||
* tree-ssa-reassoc.c (negate_value): Similarly.
|
||||
(reassociate_bb): Similarly.
|
||||
|
||||
2006-04-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* c-pretty-print.c (pp_c_direct_abstract_declarator): Print
|
||||
|
@ -765,13 +765,12 @@ merge_phi_nodes (void)
|
||||
for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
|
||||
{
|
||||
tree result = PHI_RESULT (phi);
|
||||
int num_uses = num_imm_uses (result);
|
||||
use_operand_p imm_use;
|
||||
tree use_stmt;
|
||||
|
||||
/* If the PHI's result is never used, then we can just
|
||||
ignore it. */
|
||||
if (num_uses == 0)
|
||||
if (has_zero_uses (result))
|
||||
continue;
|
||||
|
||||
/* Get the single use of the result of this PHI node. */
|
||||
|
@ -2318,7 +2318,7 @@ propagate_rhs_into_lhs (tree stmt, tree lhs, tree rhs, bitmap interesting_names)
|
||||
The maximum number of times we can re-execute the loop is
|
||||
bounded by the maximum number of times a given SSA_NAME
|
||||
appears in a single statement. */
|
||||
if (all && num_imm_uses (lhs) != 0)
|
||||
if (all && !has_zero_uses (lhs))
|
||||
goto repeat;
|
||||
|
||||
/* If we were able to propagate away all uses of LHS, then
|
||||
|
@ -269,7 +269,7 @@ dse_optimize_stmt (struct dom_walk_data *walk_data,
|
||||
|
||||
/* If this virtual def does not have precisely one use, then
|
||||
we will not be able to eliminate STMT. */
|
||||
if (num_imm_uses (defvar) != 1)
|
||||
if (! has_single_use (defvar))
|
||||
{
|
||||
fail = true;
|
||||
break;
|
||||
|
@ -1032,7 +1032,7 @@ negate_value (tree tonegate, block_stmt_iterator *bsi)
|
||||
if (TREE_CODE (tonegate) == SSA_NAME
|
||||
&& TREE_CODE (negatedef) == MODIFY_EXPR
|
||||
&& TREE_CODE (TREE_OPERAND (negatedef, 0)) == SSA_NAME
|
||||
&& num_imm_uses (TREE_OPERAND (negatedef, 0)) == 1
|
||||
&& has_single_use (TREE_OPERAND (negatedef, 0))
|
||||
&& TREE_CODE (TREE_OPERAND (negatedef, 1)) == PLUS_EXPR)
|
||||
{
|
||||
block_stmt_iterator bsi;
|
||||
@ -1331,7 +1331,7 @@ reassociate_bb (basic_block bb)
|
||||
|
||||
/* There may be no immediate uses left by the time we
|
||||
get here because we may have eliminated them all. */
|
||||
if (TREE_CODE (lhs) == SSA_NAME && num_imm_uses (lhs) == 0)
|
||||
if (TREE_CODE (lhs) == SSA_NAME && has_zero_uses (lhs))
|
||||
continue;
|
||||
|
||||
TREE_VISITED (stmt) = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user