[llvm-commits] [llvm] r85346 - in /llvm/trunk: include/llvm/CodeGen/Passes.h lib/CodeGen/BranchFolding.cpp lib/CodeGen/BranchFolding.h lib/CodeGen/IfConversion.cpp lib/CodeGen/LLVMTargetMachine.cpp lib/Target/ARM/ARMTargetMachine.cpp

Bob Wilson bob.wilson at apple.com
Wed Oct 28 10:58:16 PDT 2009


On Oct 28, 2009, at 10:41 AM, Dale Johannesen wrote:

>
> On Oct 28, 2009, at 10:38 AMPDT, Chris Lattner wrote:
>
>>
>> On Oct 28, 2009, at 10:21 AM, Dale Johannesen wrote:
>>
>>>> If so, yes, I think that would work.  In fact, I think it would  
>>>> be a
>>>> good idea.  At -O2, that would mean that we would be optimizing for
>>>> performance at a small cost in code size.  That's a more aggressive
>>>> change than mine, but I think it would be a good idea.
>>>>
>>>> Shall I go ahead with that?
>>>
>>> Branch folding is a size optimization.  It would not surprise me if
>>> turning it off completely at
>>> -O3 was the right thing for performance.  My only strong belief is
>>> that any change should be based on measurements, not arguments.
>>
>> Doesn't it also do some code layout to encourage better fall- 
>> throughs etc?
>
> Yes; I meant tail merging, not all of branch folding, sorry.
>

We could do a combination of these:

-Os: Tail merge even for 1 instruction tails.
-O2: Tail merge for > 1 instruction tails.
-O3: No tail merging.

The more conservative change I made yesterday was indeed based on  
measurements.  I agree that is important.




More information about the llvm-commits mailing list