Cool!

Evan

On Jan 4, 2008, at 5:04 PM, Chris Lattner wrote:

> On Jan 4, 2008, at 4:41 PM, Evan Cheng wrote:
>> Author: evancheng
>> Date: Fri Jan  4 18:41:47 2008
>> New Revision: 45605
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=45605&view=rev
>> Log:
>> Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it
>> can be moved if needed.
>
> Nice evan!  With this, sinking is now able to compile code like this:
>
> int G;
> int test(int X, int Y) {
>    if (X)
>      return G+Y;
>    return 0;
> }
>
> into:
>
> _test:
>       cmpl    $0, 4(%esp)
>       je      LBB2_2  # UnifiedReturnBlock
> LBB2_1:       # cond_true
>       call    "L2$pb"
> "L2$pb":
>       popl    %ecx
>       movl    8(%esp), %eax
>       movl    L_G$non_lazy_ptr-"L2$pb"(%ecx), %ecx
>       addl    (%ecx), %eax
>       ret
> LBB2_2:       # UnifiedReturnBlock
>       xorl    %eax, %eax
>       ret
>
> instead of:
>
> _test:
>       call    "L2$pb"
> "L2$pb":
>       popl    %ecx
>       cmpl    $0, 4(%esp)
>       movl    8(%esp), %eax
>       je      LBB2_2  # UnifiedReturnBlock
> LBB2_1:       # cond_true
>       movl    L_G$non_lazy_ptr-"L2$pb"(%ecx), %ecx
>       addl    (%ecx), %eax
>       ret
> LBB2_2:       # UnifiedReturnBlock
>       xorl    %eax, %eax
>       ret
>
>
> -Chris
> _______________________________________________
> llvm-commits mailing list
> llvm-commits@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to