diff --git a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp index b9c703e708db..d7a808855bbb 100644 --- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -93,13 +93,7 @@ public: } // namespace TargetPassConfig *PPCTargetMachine::createPassConfig(PassManagerBase &PM) { - TargetPassConfig *PassConfig = new PPCPassConfig(this, PM); - - // Override this for PowerPC. Tail merging happily breaks up instruction issue - // groups, which typically degrades performance. - PassConfig->setEnableTailMerge(false); - - return PassConfig; + return new PPCPassConfig(this, PM); } bool PPCPassConfig::addPreRegAlloc() { diff --git a/llvm/test/CodeGen/PowerPC/2007-05-22-tailmerge-3.ll b/llvm/test/CodeGen/PowerPC/2007-05-22-tailmerge-3.ll index c1415510d05f..382ba1f6a82d 100644 --- a/llvm/test/CodeGen/PowerPC/2007-05-22-tailmerge-3.ll +++ b/llvm/test/CodeGen/PowerPC/2007-05-22-tailmerge-3.ll @@ -1,8 +1,8 @@ -; RUN: llc < %s -march=ppc32 | grep bl.*baz | count 2 -; RUN: llc < %s -march=ppc32 | grep bl.*quux | count 2 -; RUN: llc < %s -march=ppc32 -enable-tail-merge | grep bl.*baz | count 1 -; RUN: llc < %s -march=ppc32 -enable-tail-merge=1 | grep bl.*quux | count 1 -; Check that tail merging is not the default on ppc, and that -enable-tail-merge works. +; RUN: llc < %s -march=ppc32 -enable-tail-merge=0 | grep bl.*baz | count 2 +; RUN: llc < %s -march=ppc32 -enable-tail-merge=0 | grep bl.*quux | count 2 +; RUN: llc < %s -march=ppc32 | grep bl.*baz | count 1 +; RUN: llc < %s -march=ppc32 | grep bl.*quux | count 1 +; Check that tail merging is the default on ppc, and that -enable-tail-merge works. ; ModuleID = 'tail.c' target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"