On Feb 16, 2021, Alexandre Oliva <ol...@adacore.com> wrote: >> So I wonder whether we should instead re-run CCP after loop opts which >> computes nonzero bits as well instead of the above "hack".
That works. It takes care of both the dest alignment and the len ctz. Explicitly masking out the len tz from nonzero bits also works, but I suppose the ccp pass does a better job, and it takes care of memcpy and memmove as well. I noticed that ccp releases CDI_DOMINATORS information. It looks like the last copy_prop pass, now replaced with ccp in my tree, was late enough that it doesn't seem to matter, but at first I thought you meant an earlier copy_prop, that runs before graphite, and dropping dominator info at that point was a problem for e.g. cunroll. -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Vim, Vi, Voltei pro Emacs -- GNUlius Caesar