diff options
author | Hal Finkel <hfinkel@anl.gov> | 2012-06-08 19:19:53 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2012-06-08 19:19:53 +0000 |
commit | 7255d2a8084cb6aa96ea0e5f30acfff76df04ee8 (patch) | |
tree | 785085ec68f98e4874be4b08af4b2f8497b7ed82 /lib/Target/PowerPC/PPCTargetMachine.cpp | |
parent | 7e5631202ab5b5f2097d234d0357bc5b3b7f5530 (diff) | |
download | external_llvm-7255d2a8084cb6aa96ea0e5f30acfff76df04ee8.zip external_llvm-7255d2a8084cb6aa96ea0e5f30acfff76df04ee8.tar.gz external_llvm-7255d2a8084cb6aa96ea0e5f30acfff76df04ee8.tar.bz2 |
Enable PPC CTR loop formation by default.
Thanks to Jakob's help, this now causes no new test suite failures!
Over the entire test suite, this gives an average 1% speedup. The largest speedups are:
SingleSource/Benchmarks/Misc/pi - 108%
SingleSource/Benchmarks/CoyoteBench/lpbench - 54%
MultiSource/Benchmarks/Prolangs-C/unix-smail/unix-smail - 50%
SingleSource/Benchmarks/Shootout/ary3 - 32%
SingleSource/Benchmarks/Shootout-C++/matrix - 30%
The largest slowdowns are:
MultiSource/Benchmarks/mediabench/gsm/toast/toast - -30%
MultiSource/Benchmarks/Prolangs-C/bison/mybison - -25%
MultiSource/Benchmarks/BitBench/uuencode/uuencode - -22%
MultiSource/Applications/d/make_dparser - -14%
SingleSource/Benchmarks/Shootout-C++/ary - -13%
In light of these slowdowns, additional profiling work is obviously needed!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158223 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCTargetMachine.cpp')
-rw-r--r-- | lib/Target/PowerPC/PPCTargetMachine.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp index bcab83c..b9c703e 100644 --- a/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -23,8 +23,8 @@ using namespace llvm; static cl:: -opt<bool> EnableCTRLoops("enable-ppc-ctrloops", cl::Hidden, - cl::desc("Enable CTR loops for PPC")); +opt<bool> DisableCTRLoops("disable-ppc-ctrloops", cl::Hidden, + cl::desc("Disable CTR loops for PPC")); extern "C" void LLVMInitializePowerPCTarget() { // Register the targets @@ -103,9 +103,7 @@ TargetPassConfig *PPCTargetMachine::createPassConfig(PassManagerBase &PM) { } bool PPCPassConfig::addPreRegAlloc() { - // FIXME: Once this can be enabled by default, this condition should read: - // if (!DisableCTRLoops && getOptLevel() != CodeGenOpt::None) - if (EnableCTRLoops) + if (!DisableCTRLoops && getOptLevel() != CodeGenOpt::None) PM->add(createPPCCTRLoops()); return false; |