On 21 April 2006 01:10, Alan Modra wrote: > On Thu, Apr 20, 2006 at 04:52:14PM +0100, Dave Korn wrote: >> Yet it would seem to me at first glance that, since dividing unsigned by >> an exact power-of-2 can be optimised to a right shift, and since we can >> deduce > > You might like to build yourself a new compiler. :) > > 2006-04-19 Alan Modra <[EMAIL PROTECTED]> > > PR rtl-optimization/26026 > * fold-const.c (fold_binary): Optimize div and mod where the divisor > is a known power of two shifted left a variable amount.
Thanks Alan, nice one! I'm working with a 3.3 series legacy codebase so I'll need to backport it (the 'keep-everything-stable' dept. would have kittens if I suggest moving up to 4.x without having a few spare months for testing and stabilisation :-/) but that looks trivial (noticed there's a return t -vs- return NULL_TREE difference between 3.x and 4.x in a few places, think I can guess what that's all about, the rest should go through unchanged AFAICS) and I'll pick up a few of the other new improvements while I'm there. I was just worried there might be some corner case where it wasn't a valid transformation but I guess the standard does place such restrictions on valid shifts that any such cases would be undefined behaviour anyway. Thanks again. <scurries off to test shiny new compiler with big smile on face> cheers, DaveK -- Can't think of a witty .sigline today....