Skip to content

Commit 1d3854d

Browse files
committed
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. llvm-svn: 130896
1 parent ffb798c commit 1d3854d

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ DisableCrossClassJoin("disable-cross-class-join",
6363
static cl::opt<bool>
6464
EnablePhysicalJoin("join-physregs",
6565
cl::desc("Join physical register copies"),
66-
cl::init(true), cl::Hidden);
66+
cl::init(false), cl::Hidden);
6767

6868
static cl::opt<bool>
6969
VerifyCoalescing("verify-coalescing",

0 commit comments

Comments
 (0)