[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
baldrick at free.fr
Tue Jul 15 13:49:59 CDT 2008
> > 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)?
More information about the llvm-commits