Disable physical register coalescing by default.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 4 May 2011 23:59:00 +0000 (23:59 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 4 May 2011 23:59:00 +0000 (23:59 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130896 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SimpleRegisterCoalescing.cpp

index 443333155594366fd476dcf875ed5a0a9aafd7df..cebf4c9f4a5a00cde61746da5ad182eb06e23d52 100644 (file)
@@ -63,7 +63,7 @@ DisableCrossClassJoin("disable-cross-class-join",
 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",