mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-24 08:24:33 +00:00
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
This commit is contained in:
@ -41,8 +41,8 @@ extern cl::opt<bool> DisablePPC64RS;
|
||||
using namespace llvm;
|
||||
|
||||
static cl::
|
||||
opt<bool> EnableCTRLoopAnal("enable-ppc-ctrloop-analysis", cl::Hidden,
|
||||
cl::desc("Enable analysis for CTR loops (experimental)"));
|
||||
opt<bool> DisableCTRLoopAnal("disable-ppc-ctrloop-analysis", cl::Hidden,
|
||||
cl::desc("Disable analysis for CTR loops"));
|
||||
|
||||
PPCInstrInfo::PPCInstrInfo(PPCTargetMachine &tm)
|
||||
: PPCGenInstrInfo(PPC::ADJCALLSTACKDOWN, PPC::ADJCALLSTACKUP),
|
||||
@ -233,7 +233,7 @@ bool PPCInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,MachineBasicBlock *&TBB,
|
||||
LastInst->getOpcode() == PPC::BDNZ) {
|
||||
if (!LastInst->getOperand(0).isMBB())
|
||||
return true;
|
||||
if (!EnableCTRLoopAnal)
|
||||
if (DisableCTRLoopAnal)
|
||||
return true;
|
||||
TBB = LastInst->getOperand(0).getMBB();
|
||||
Cond.push_back(MachineOperand::CreateImm(1));
|
||||
@ -244,7 +244,7 @@ bool PPCInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,MachineBasicBlock *&TBB,
|
||||
LastInst->getOpcode() == PPC::BDZ) {
|
||||
if (!LastInst->getOperand(0).isMBB())
|
||||
return true;
|
||||
if (!EnableCTRLoopAnal)
|
||||
if (DisableCTRLoopAnal)
|
||||
return true;
|
||||
TBB = LastInst->getOperand(0).getMBB();
|
||||
Cond.push_back(MachineOperand::CreateImm(0));
|
||||
@ -282,7 +282,7 @@ bool PPCInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,MachineBasicBlock *&TBB,
|
||||
if (!SecondLastInst->getOperand(0).isMBB() ||
|
||||
!LastInst->getOperand(0).isMBB())
|
||||
return true;
|
||||
if (!EnableCTRLoopAnal)
|
||||
if (DisableCTRLoopAnal)
|
||||
return true;
|
||||
TBB = SecondLastInst->getOperand(0).getMBB();
|
||||
Cond.push_back(MachineOperand::CreateImm(1));
|
||||
@ -296,7 +296,7 @@ bool PPCInstrInfo::AnalyzeBranch(MachineBasicBlock &MBB,MachineBasicBlock *&TBB,
|
||||
if (!SecondLastInst->getOperand(0).isMBB() ||
|
||||
!LastInst->getOperand(0).isMBB())
|
||||
return true;
|
||||
if (!EnableCTRLoopAnal)
|
||||
if (DisableCTRLoopAnal)
|
||||
return true;
|
||||
TBB = SecondLastInst->getOperand(0).getMBB();
|
||||
Cond.push_back(MachineOperand::CreateImm(0));
|
||||
|
Reference in New Issue
Block a user