mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-23 00:41:25 +08:00
tree-optimization/106995 - if-conversion and vanishing loops
When we version loops for vectorization during if-conversion it can happen that either loop vanishes because we run some VN and CFG cleanup. If the to-be vectorized part vanishes we already redirect the versioning condition to the original loop. The following does the same in case the original loop vanishes as happened for the testcase in the bug in the past (but no longer). PR tree-optimization/106995 * tree-if-conv.cc (pass_if_conversion::execute): Also redirect the versioning condition to the original loop if this very loop vanished during CFG cleanup.
This commit is contained in:
parent
ffabce8490
commit
063ba138ea
@ -3761,7 +3761,8 @@ pass_if_conversion::execute (function *fun)
|
||||
if (!gimple_bb (g))
|
||||
continue;
|
||||
unsigned ifcvt_loop = tree_to_uhwi (gimple_call_arg (g, 0));
|
||||
if (!get_loop (fun, ifcvt_loop))
|
||||
unsigned orig_loop = tree_to_uhwi (gimple_call_arg (g, 1));
|
||||
if (!get_loop (fun, ifcvt_loop) || !get_loop (fun, orig_loop))
|
||||
{
|
||||
if (dump_file)
|
||||
fprintf (dump_file, "If-converted loop vanished\n");
|
||||
|
Loading…
x
Reference in New Issue
Block a user