diff options
author | Richard Biener <rguenther@suse.de> | 2023-08-08 12:46:42 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2023-08-08 14:24:12 +0200 |
commit | 31ec413098bd334115aff73fc755e49afd3ac371 (patch) | |
tree | 7f50ee79560b42cfb2c673638627441d58bf57b4 /gcc/tree-vectorizer.h | |
parent | 25c4b1620ebc10fceabd86a34fdbbaf8037e7e82 (diff) | |
download | gcc-31ec413098bd334115aff73fc755e49afd3ac371.zip gcc-31ec413098bd334115aff73fc755e49afd3ac371.tar.gz gcc-31ec413098bd334115aff73fc755e49afd3ac371.tar.bz2 |
tree-optimization/110924 - fix vop liveness for noreturn const CFG parts
The virtual operand live problem used by sinking assumes we have
virtual uses at each end point of the CFG but as shown in the PR
this isn't true for parts for example ending in __builtin_unreachable.
The following removes the optimization made possible by this and
now requires marking backedges.
PR tree-optimization/110924
* tree-ssa-live.h (virtual_operand_live): Update comment.
* tree-ssa-live.cc (virtual_operand_live::get_live_in): Remove
optimization, look at each predecessor.
* tree-ssa-sink.cc (pass_sink_code::execute): Mark backedges.
* gcc.dg/torture/pr110924.c: New testcase.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions