tree-optimization/112991 - re-do PR112961 fix
commit93db32a4146afd2a6d90410691351a56768167c9
authorRichard Biener <rguenther@suse.de>
Wed, 13 Dec 2023 07:45:58 +0000 (13 08:45 +0100)
committerRichard Biener <rguenther@suse.de>
Wed, 13 Dec 2023 08:43:10 +0000 (13 09:43 +0100)
treefac4369cfe531d328c3d8d080b79e250e5f38ce8
parentb9baead90d74e9211fc94d655ecd5d3af3858158
tree-optimization/112991 - re-do PR112961 fix

The following does away with the fake edge adding as in the original
PR112961 fix and instead exposes handling of entry PHIs as additional
parameter of the region VN run.

PR tree-optimization/112991
PR tree-optimization/112961
* tree-ssa-sccvn.h (do_rpo_vn): Add skip_entry_phis argument.
* tree-ssa-sccvn.cc (do_rpo_vn): Likewise.
(do_rpo_vn_1): Likewise, merge with auto-processing.
(run_rpo_vn): Adjust.
(pass_fre::execute): Likewise.
* tree-if-conv.cc (tree_if_conversion): Revert last change.
Value-number latch block but disable value-numbering of
entry PHIs.
* tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.

* gcc.dg/torture/pr112991.c: New testcase.
gcc/testsuite/gcc.dg/torture/pr112991.c [new file with mode: 0644]
gcc/tree-if-conv.cc
gcc/tree-ssa-sccvn.cc
gcc/tree-ssa-sccvn.h
gcc/tree-ssa-uninit.cc