diff options
author | Richard Biener <rguenther@suse.de> | 2022-05-12 12:13:29 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-05-12 13:27:12 +0200 |
commit | 94b8a37fa16f7638cc1965718f4ec71719506743 (patch) | |
tree | 2c4655d41dda9a3ca708025e0cd240b3ea7b7739 /libgomp/plugin | |
parent | 78c8b0b980341f28de96da518a38bf85bbd24d98 (diff) | |
download | gcc-94b8a37fa16f7638cc1965718f4ec71719506743.zip gcc-94b8a37fa16f7638cc1965718f4ec71719506743.tar.gz gcc-94b8a37fa16f7638cc1965718f4ec71719506743.tar.bz2 |
tree-optimization/105562 - avoid uninit diagnostic with better FRE
We can avoid some uninit diagnostics by making FRE disambiguate
against CLOBBERs since any aliasing there would invoke undefined
behavior for a read we are looking up.
2022-05-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/105562
* tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
against all CLOBBER defs if there's not an obvious must-alias
and we are not doing redundant store elimination.
(vn_walk_cb_data::redundant_store_removal_p): New field.
(vn_reference_lookup_pieces): Initialize it.
(vn_reference_lookup): Add argument to specify if we are
doing redundant store removal.
(eliminate_dom_walker::eliminate_stmt): Specify we do.
* tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
* g++.dg/warn/uninit-pr105562.C: New testcase.
Diffstat (limited to 'libgomp/plugin')
0 files changed, 0 insertions, 0 deletions