duplicate_loop_body_to_header_edge clears bb->aux which is not wanted by a new use in loop unswitching. The clearing was introduced with r0-69110-g6580ee7781f903 and it seems accidentially so.
Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. 2022-05-17 Richard Biener <rguent...@suse.de> * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do not clear bb->aux of the copied blocks. --- gcc/cfgloopmanip.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/gcc/cfgloopmanip.cc b/gcc/cfgloopmanip.cc index b4357c03e86..7736e3ec709 100644 --- a/gcc/cfgloopmanip.cc +++ b/gcc/cfgloopmanip.cc @@ -1351,7 +1351,6 @@ duplicate_loop_body_to_header_edge (class loop *loop, edge e, unsigned j; bb = bbs[i]; - bb->aux = 0; auto_vec<basic_block> dom_bbs = get_dominated_by (CDI_DOMINATORS, bb); FOR_EACH_VEC_ELT (dom_bbs, j, dominated) -- 2.35.3