diff options
author | Richard Biener <rguenther@suse.de> | 2021-06-08 12:52:12 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-06-08 15:09:18 +0200 |
commit | 7a56d3d3e99cc77ad8a6a674870c814da6225675 (patch) | |
tree | c152bfdd65cfe5dcb2b61a5d5b46cefaffc3e95d /gcc/cp/decl.c | |
parent | 4bd2cdb74e26f68a4e9d51e74ace60326c9950d1 (diff) | |
download | gcc-7a56d3d3e99cc77ad8a6a674870c814da6225675.zip gcc-7a56d3d3e99cc77ad8a6a674870c814da6225675.tar.gz gcc-7a56d3d3e99cc77ad8a6a674870c814da6225675.tar.bz2 |
tree-optimization/100923 - fix alias-ref construction wrt availability
This PR shows that building an ao_ref from value-numbers is prone to
expose bogus contextual alias info to the oracle. The following makes
sure to construct ao_refs from SSA names available at the program point
only.
On the way it modifies the awkward valueize_refs[_1] API.
2021-06-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/100923
* tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
the operand vector to be valueized.
(valueize_refs): Likewise.
(valueize_shared_reference_ops_from_ref): Adjust.
(valueize_shared_reference_ops_from_call): Likewise.
(vn_reference_lookup_3): Likewise.
(vn_reference_lookup_pieces): Likewise. Re-valueize
with honoring availability when we are about to create
the ao_ref and valueized before.
(vn_reference_lookup): Likewise.
(vn_reference_insert_pieces): Adjust.
* gcc.dg/torture/pr100923.c: New testcase.
Diffstat (limited to 'gcc/cp/decl.c')
0 files changed, 0 insertions, 0 deletions