On Mon, Oct 26, 2020 at 01:28:42PM +0000, Alex Coplan wrote: > On 26/10/2020 07:12, Segher Boessenkool wrote: > > On Thu, Oct 15, 2020 at 09:59:24AM +0100, Alex Coplan wrote: > > Can you instead replace the mult by a shift somewhere earlier in > > make_extract? That would make a lot more sense :-) > > I guess we could do this, the only complication being that we can't > unconditionally rewrite the expression using a shift, since mult is canonical > inside a mem (which is why we see it in the testcase in the PR).
You can do it just inside the block you are already editing. > So if we did this, we'd have to remember that we did it earlier on, and > rewrite > it back to a mult accordingly. Yes, this function has ridiculously complicated cpontrol flow. So I cannot trick you into improving it? ;-) > Would you still like to see a version of the patch that does that, or is this > version OK: > https://gcc.gnu.org/pipermail/gcc-patches/2020-October/557050.html ? I do not like handling both mult and ashift in one case like this, it complicates things for no good reason. Write it as two cases, and it should be good. Segher