https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108938
--- Comment #13 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Jakub Jelinek from comment #12) > (In reply to Hongtao.liu from comment #11) > > (In reply to Jakub Jelinek from comment #9) > > > Though, if more than one replacement operation is emitted, one needs to be > > > careful not to emit more expensive replacement than the original sequence > > > (especially if some subexpressions aren't single use). > > > > The patch(support swap + bit_and + rotate) doesn't show much impact on > > SPEC2017, is there any other benchmark that I can try to find some > > performance regressiones with bswap + bit_and + rotate? > > So that I'll restrict the patch to only bswp + rotate/shift. > > I didn't mean to look at SPEC numbers, I meant count number of statements > that could be DCEd. The code currently computes n_ops as it walks the > statements that compute the value. So, the idea would be to have another > counter next to it, initialized > very similarly, except on a statement that !has_single_use it would be reset > to zero (essentially not counting that statement or any of its defining > statements (transitively)). > So it would count solely the statements that could be DCEd. Make sense.