diff options
author | Richard Guenther <rguenther@suse.de> | 2007-06-12 12:06:19 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2007-06-12 12:06:19 +0000 |
commit | 18d0801470c24386f9e02038d3305e0738d1623e (patch) | |
tree | 172c6441c249e7e65732e9052654b4d84a7e6b47 /gcc/tree-ssa-phiopt.c | |
parent | 7f482dfebf0aaaf2e35e53ffe16834de4eb1d375 (diff) | |
download | gcc-18d0801470c24386f9e02038d3305e0738d1623e.tar.gz |
re PR tree-optimization/15353 ([tree-ssa] Merge two "if"s if one subsumes the other.)
2007-06-12 Richard Guenther <rguenther@suse.de>
PR tree-optimization/15353
PR tree-optimization/31657
* passes.c (init_optimization_passes): Add pass_tree_ifcombine.
* timevar.def: Add TV_TREE_IFCOMBINE.
* tree-pass.h (pass_tree_ifcombine): Declare.
* tree-ssa-ifcombine.c: New file.
* tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
* tree-flow.h (blocks_in_phiopt_order): Declare.
* Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
(tree-ssa-ifcombine.o): New dependencies.
* gcc.c-torture/execute/20070424-1.c: New testcase.
* gcc.dg/tree-ssa/ssa-ifcombine-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-4.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-5.c: Likewise.
From-SVN: r125644
Diffstat (limited to 'gcc/tree-ssa-phiopt.c')
-rw-r--r-- | gcc/tree-ssa-phiopt.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c index 0c756d915cc..8cdd3c80da9 100644 --- a/gcc/tree-ssa-phiopt.c +++ b/gcc/tree-ssa-phiopt.c @@ -45,7 +45,6 @@ static bool minmax_replacement (basic_block, basic_block, static bool abs_replacement (basic_block, basic_block, edge, edge, tree, tree, tree); static void replace_phi_edge_with_variable (basic_block, edge, tree, tree); -static basic_block *blocks_in_phiopt_order (void); /* This pass tries to replaces an if-then-else block with an assignment. We have four kinds of transformations. Some of these @@ -247,7 +246,7 @@ tree_ssa_phiopt (void) that if a block X has just a single predecessor Y, then Y is after X in the ordering. */ -static basic_block * +basic_block * blocks_in_phiopt_order (void) { basic_block x, y; |