[llvm-commits] [llvm] r53534 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/2008-07-13-DivZero.ll test/Transforms/InstCombine/udiv_select_to_select_shift.ll

Duncan Sands baldrick at free.fr
Tue Jul 15 11:49:59 PDT 2008


Hi Chris,

> >  What I meant
> > was that you always transform uses as long as they are below the
> > original DivRem in the basic block; if they come before the DivRem
> > then you have to be careful about calls that do not return.
> 
> I'm still not following.  The loop does a backwards walk from the div/ 
> rem up, simplifying instructions as it goes.  If it find a call to a  
> function that might not return, it stops simplifying.  Is there some  
> way the loop can be made cleaner?

I didn't notice that you started at the div/rem.  Then what about uses
between the div/rem and the end of the BB - can't they be simplified
too (without worrying about calls that don't return)?

Ciao,

Duncan.



More information about the llvm-commits mailing list