tree-optimization/100414 - compute dominance info in phiopt
phiopt now has dominator queries but fails to compute dominance info. 2021-05-04 Richard Biener <rguenther@suse.de> PR tree-optimization/100414 * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance info here. (tree_ssa_phiopt_worker): But unconditionally here. * gcc.dg/pr100414.c: New testcase.
This commit is contained in:
parent
1580fc7644
commit
7a38976611
2 changed files with 11 additions and 3 deletions
9
gcc/testsuite/gcc.dg/pr100414.c
Normal file
9
gcc/testsuite/gcc.dg/pr100414.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O -fno-tree-dce -fno-tree-dse -fchecking" } */
|
||||
|
||||
int i;
|
||||
void
|
||||
foo (void)
|
||||
{
|
||||
i &= i && __builtin_bswap16 (i);
|
||||
}
|
|
@ -174,6 +174,8 @@ tree_ssa_phiopt_worker (bool do_store_elim, bool do_hoist_loads, bool early_p)
|
|||
bool cfgchanged = false;
|
||||
hash_set<tree> *nontrap = 0;
|
||||
|
||||
calculate_dominance_info (CDI_DOMINATORS);
|
||||
|
||||
if (do_store_elim)
|
||||
/* Calculate the set of non-trapping memory accesses. */
|
||||
nontrap = get_non_trapping ();
|
||||
|
@ -2438,9 +2440,6 @@ get_non_trapping (void)
|
|||
{
|
||||
nt_call_phase = 0;
|
||||
hash_set<tree> *nontrap = new hash_set<tree>;
|
||||
/* We're going to do a dominator walk, so ensure that we have
|
||||
dominance information. */
|
||||
calculate_dominance_info (CDI_DOMINATORS);
|
||||
|
||||
nontrapping_dom_walker (CDI_DOMINATORS, nontrap)
|
||||
.walk (cfun->cfg->x_entry_block_ptr);
|
||||
|
|
Loading…
Add table
Reference in a new issue