On Thu, May 19, 2022 at 02:13:33PM +0000, Richard Biener wrote: > > Though, depending on what exactly you allow or disallow, maybe even > > the im != 0 might not be acceptable. > > Oh, and if COND_EXPRs can only use some limited set of comparisons, we might > > need to adjust e.g. arith_overflow_check_p and various other spots in > > tree-ssa-math-opts.cc and other passes. > > With the changes I have in the queue the !cond_stmt path should be > effectively dead code (though I don't remove such immediately). > > Not sure what you think the issue with arith_overflow_check_p would be? > Note this is only about COND_EXPRs in gimple assignments.
Just that there will be more dead code in the compiler. At least tree-ssa-math-opts.cc in various spots (but I think phiopt too and other spots I've touched too) are looking for all 3 kinds of comparisons, GIMPLE_CONDs, comparisons in COND_EXPR first operand and assignments with tcc_comparison rhs codes and deal with all 3. If we restrict what can appear in COND_EXPR first operand in gimple assignments, perhaps we'll need to only deal with the first and last case and not the COND_EXPR ones. Jakub