[llvm-commits] [llvm] r154987 - /llvm/trunk/lib/Transforms/Scalar/LoopUnswitch.cpp

Bill Wendling wendling at apple.com
Wed Apr 18 17:58:09 PDT 2012


On Apr 18, 2012, at 2:18 PM, Chris Lattner wrote:

> On Apr 18, 2012, at 1:13 AM, Duncan Sands wrote:
> 
>> Hi Bill,
>> 
>>> Use a heavy hammer to fix PR12573.
>>> 
>>> If the loop contains invoke instructions, whose unwind edge escapes the loop,
>>> then don't try to unswitch the loop. Doing so may cause the unwind edge to be
>>> split, which not only is non-trivial but doesn't preserve loop simplify
>>> information.
>> 
>> testcase?  By the way, this disables loop unswitching for any loop that is
>> wrapped in a try-catch block - is that right?  If so, isn't that kind of
>> bad?  The hammer does seem extra heavy to me :)
> 
> This hammer does seem overly strong to me.  Also, can't this check be moved below the other, cheaper, checks?
> 
I'll review it to see if I can make the hammer a bit less heavy. And, sure I can move it...

Duncan, I have a testcase, but it didn't reproduce in isolation (i.e., you couldn't run just -loop-unswitch on it, but several other opts first). I'll add something though.

-bw




More information about the llvm-commits mailing list