[llvm-commits] [llvm] r130896 - /llvm/trunk/lib/CodeGen/SimpleRegisterCoalescing.cpp

Chris Lattner clattner at apple.com
Sun May 8 06:47:00 PDT 2011


On May 4, 2011, at 4:59 PM, Jakob Stoklund Olesen wrote:

> Author: stoklund
> Date: Wed May  4 18:59:00 2011
> New Revision: 130896
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=130896&view=rev
> Log:
> Disable physical register coalescing by default.
> 
> Joining physregs is inherently dangerous because it uses a heuristic to avoid
> creating invalid code. Linear scan had an emergency spilling mechanism to deal
> with those rare cases. The new greedy allocator does not.
> 
> The greedy register allocator is much better at taking hints, so this has almost
> no impact on code size and quality. The few cases where it matters show up as
> unit tests that now have -join-physregs enabled explicitly.

Do you plan to remove this code entirely, or wait until LinScan disappears?

-Chris

> 
> Modified:
>    llvm/trunk/lib/CodeGen/SimpleRegisterCoalescing.cpp
> 
> Modified: llvm/trunk/lib/CodeGen/SimpleRegisterCoalescing.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SimpleRegisterCoalescing.cpp?rev=130896&r1=130895&r2=130896&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SimpleRegisterCoalescing.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SimpleRegisterCoalescing.cpp Wed May  4 18:59:00 2011
> @@ -63,7 +63,7 @@
> static cl::opt<bool>
> EnablePhysicalJoin("join-physregs",
>                    cl::desc("Join physical register copies"),
> -                   cl::init(true), cl::Hidden);
> +                   cl::init(false), cl::Hidden);
> 
> static cl::opt<bool>
> VerifyCoalescing("verify-coalescing",
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list