diff options
author | Richard Biener <rguenther@suse.de> | 2015-10-19 14:00:28 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-10-19 14:00:28 +0000 |
commit | e6503e0a45efcea6a0cdc5aeab165e084b0eb624 (patch) | |
tree | 075dea0c963d70dcf98b41407036d2fb506b1b92 /gcc/tree-cfg.h | |
parent | 4534c2032ba23be0a1f6b74ea2e23bc94df0cb81 (diff) | |
download | gcc-e6503e0a45efcea6a0cdc5aeab165e084b0eb624.zip gcc-e6503e0a45efcea6a0cdc5aeab165e084b0eb624.tar.gz gcc-e6503e0a45efcea6a0cdc5aeab165e084b0eb624.tar.bz2 |
re PR tree-optimization/67975 (Failure to optimise equality between two call sequences)
2015-10-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/67975
* tree-cfg.h (extract_true_false_controlled_edges): Declare.
* tree-cfg.c (extract_true_false_controlled_edges): Split out
core worker from ...
* tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
* tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
instead of block number for PHIs with two or one args.
(vn_phi_eq): Compare edge predicates of PHIs that are in different
blocks.
* gcc.dg/tree-ssa/ssa-fre-50.c: New testcase.
From-SVN: r228971
Diffstat (limited to 'gcc/tree-cfg.h')
-rw-r--r-- | gcc/tree-cfg.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/tree-cfg.h b/gcc/tree-cfg.h index 855077a..1bfa5c4 100644 --- a/gcc/tree-cfg.h +++ b/gcc/tree-cfg.h @@ -105,5 +105,7 @@ extern unsigned int execute_fixup_cfg (void); extern unsigned int split_critical_edges (void); extern basic_block insert_cond_bb (basic_block, gimple *, gimple *); extern bool gimple_find_sub_bbs (gimple_seq, gimple_stmt_iterator *); +extern bool extract_true_false_controlled_edges (basic_block, basic_block, + edge *, edge *); #endif /* _TREE_CFG_H */ |