aboutsummaryrefslogtreecommitdiff
path: root/gcc/graphds.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2022-07-20 12:28:26 +0200
committerRichard Biener <rguenther@suse.de>2022-07-21 13:05:42 +0200
commitbd9837bc3ca1344c32aef7ba9f8fa1785063132e (patch)
tree37e494bdc17a57e16af86c4d491cb9cbb40ab691 /gcc/graphds.cc
parentf4ed610d02aaf8cfcdcb5cf03e0cde65f1f5f890 (diff)
downloadgcc-bd9837bc3ca1344c32aef7ba9f8fa1785063132e.zip
gcc-bd9837bc3ca1344c32aef7ba9f8fa1785063132e.tar.gz
gcc-bd9837bc3ca1344c32aef7ba9f8fa1785063132e.tar.bz2
Teach VN about masked/len stores
The following teaches VN to handle reads from .MASK_STORE and .LEN_STORE. For this push_partial_def is extended first for convenience so we don't have to handle the full def case in the caller (possibly other paths can be simplified then). Also the partial definition stored value can have an offset applied so we don't have to build a fake RHS when we register the pieces of an existing store. PR tree-optimization/106365 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining the offset to start encoding of RHS from. (vn_walk_cb_data::vn_walk_cb_data): Initialize it. (vn_walk_cb_data::push_partial_def): Allow the first partial definition to be fully providing the def. Offset RHS before encoding if requested. (vn_reference_lookup_3): Initialize def_rhs everywhere. Add support for .MASK_STORE and .LEN_STORE (partial) definitions. * gcc.target/i386/vec-maskstore-vn.c: New testcase.
Diffstat (limited to 'gcc/graphds.cc')
0 files changed, 0 insertions, 0 deletions