diff options
| author | Kang Zhang <shkzhang@cn.ibm.com> | 2019-04-12 09:59:40 +0000 |
|---|---|---|
| committer | Kang Zhang <shkzhang@cn.ibm.com> | 2019-04-12 09:59:40 +0000 |
| commit | 2446f843aeeae6c0fff3620b90bab9cdcc47ec8a (patch) | |
| tree | 68baa99ed4353657e310cb3fbfc88ea27f3701d5 /llvm/lib/Target/PowerPC | |
| parent | 32afe6a1f8a5b1403a1db020d869816a97279854 (diff) | |
| download | bcm5719-llvm-2446f843aeeae6c0fff3620b90bab9cdcc47ec8a.tar.gz bcm5719-llvm-2446f843aeeae6c0fff3620b90bab9cdcc47ec8a.zip | |
[PowerPC] Add initialization for some ppc passes
Summary:
Some llc debug options need pass-name as the parameters.
But if we use the pass-name ppc-early-ret, we will get below error:
llc test.ll -stop-after ppc-early-ret
LLVM ERROR: "ppc-early-ret" pass is not registered.
Below pass-names have the pass is not registered error:
ppc-ctr-loops
ppc-ctr-loops-verify
ppc-loop-preinc-prep
ppc-toc-reg-deps
ppc-vsx-copy
ppc-early-ret
ppc-vsx-fma-mutate
ppc-vsx-swaps
ppc-reduce-cr-ops
ppc-qpx-load-splat
ppc-branch-coalescing
ppc-branch-select
Reviewed By: jsji
Differential Revision: https://reviews.llvm.org/D60248
llvm-svn: 358271
Diffstat (limited to 'llvm/lib/Target/PowerPC')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPC.h | 14 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCBranchSelector.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCCTRLoops.cpp | 7 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp | 6 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCTargetMachine.cpp | 14 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCVSXCopy.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp | 4 |
13 files changed, 28 insertions, 49 deletions
diff --git a/llvm/lib/Target/PowerPC/PPC.h b/llvm/lib/Target/PowerPC/PPC.h index 85df85e0c49..1f6f96de816 100644 --- a/llvm/lib/Target/PowerPC/PPC.h +++ b/llvm/lib/Target/PowerPC/PPC.h @@ -56,12 +56,26 @@ namespace llvm { MCOperand &OutMO, AsmPrinter &AP, bool isDarwin); + void initializePPCCTRLoopsPass(PassRegistry&); +#ifndef NDEBUG + void initializePPCCTRLoopsVerifyPass(PassRegistry&); +#endif + void initializePPCLoopPreIncPrepPass(PassRegistry&); + void initializePPCTOCRegDepsPass(PassRegistry&); + void initializePPCEarlyReturnPass(PassRegistry&); + void initializePPCVSXCopyPass(PassRegistry&); void initializePPCVSXFMAMutatePass(PassRegistry&); + void initializePPCVSXSwapRemovalPass(PassRegistry&); + void initializePPCReduceCRLogicalsPass(PassRegistry&); + void initializePPCBSelPass(PassRegistry&); + void initializePPCBranchCoalescingPass(PassRegistry&); + void initializePPCQPXLoadSplatPass(PassRegistry&); void initializePPCBoolRetToIntPass(PassRegistry&); void initializePPCExpandISELPass(PassRegistry &); void initializePPCPreEmitPeepholePass(PassRegistry &); void initializePPCTLSDynamicCallPass(PassRegistry &); void initializePPCMIPeepholePass(PassRegistry&); + extern char &PPCVSXFMAMutateID; namespace PPCII { diff --git a/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp b/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp index 58f80bd46dc..5e9a661f8f0 100644 --- a/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp +++ b/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp @@ -33,10 +33,6 @@ STATISTIC(NumBlocksCoalesced, "Number of blocks coalesced"); STATISTIC(NumPHINotMoved, "Number of PHI Nodes that cannot be merged"); STATISTIC(NumBlocksNotCoalesced, "Number of blocks not coalesced"); -namespace llvm { - void initializePPCBranchCoalescingPass(PassRegistry&); -} - //===----------------------------------------------------------------------===// // PPCBranchCoalescing //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp b/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp index fcef3df5072..793d690baec 100644 --- a/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp +++ b/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp @@ -32,10 +32,6 @@ using namespace llvm; STATISTIC(NumExpanded, "Number of branches expanded to long format"); -namespace llvm { - void initializePPCBSelPass(PassRegistry&); -} - namespace { struct PPCBSel : public MachineFunctionPass { static char ID; diff --git a/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp b/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp index 526e06aeb2a..3c24af1df97 100644 --- a/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp +++ b/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp @@ -80,13 +80,6 @@ SmallCTRLoopThreshold("min-ctr-loop-threshold", cl::init(4), cl::Hidden, STATISTIC(NumCTRLoops, "Number of loops converted to CTR loops"); -namespace llvm { - void initializePPCCTRLoopsPass(PassRegistry&); -#ifndef NDEBUG - void initializePPCCTRLoopsVerifyPass(PassRegistry&); -#endif -} - namespace { struct PPCCTRLoops : public FunctionPass { diff --git a/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp b/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp index 8cc973a9ff4..6c08bcde1b3 100644 --- a/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp +++ b/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp @@ -36,10 +36,6 @@ using namespace llvm; STATISTIC(NumBCLR, "Number of early conditional returns"); STATISTIC(NumBLR, "Number of early returns"); -namespace llvm { - void initializePPCEarlyReturnPass(PassRegistry&); -} - namespace { // PPCEarlyReturn pass - For simple functions without epilogue code, move // returns up, and create conditional returns, to avoid unnecessary diff --git a/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp b/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp index 264dbbdc84e..9689e8c590a 100644 --- a/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp +++ b/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp @@ -64,12 +64,6 @@ static cl::opt<unsigned> MaxVars("ppc-preinc-prep-max-vars", STATISTIC(PHINodeAlreadyExists, "PHI node already in pre-increment form"); -namespace llvm { - - void initializePPCLoopPreIncPrepPass(PassRegistry&); - -} // end namespace llvm - namespace { class PPCLoopPreIncPrep : public FunctionPass { diff --git a/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp b/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp index e0faae057c2..3a83cc27439 100644 --- a/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp +++ b/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp @@ -30,10 +30,6 @@ using namespace llvm; STATISTIC(NumSimplified, "Number of QPX load splats simplified"); -namespace llvm { - void initializePPCQPXLoadSplatPass(PassRegistry&); -} - namespace { struct PPCQPXLoadSplat : public MachineFunctionPass { static char ID; diff --git a/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp b/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp index e4f6579f9bd..45f8907a08e 100644 --- a/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp +++ b/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp @@ -48,10 +48,6 @@ STATISTIC(NumNotSplitChainCopies, STATISTIC(NumNotSplitWrongOpcode, "Number of blocks not split due to the wrong opcode."); -namespace llvm { - void initializePPCReduceCRLogicalsPass(PassRegistry&); -} - /// Given a basic block \p Successor that potentially contains PHIs, this /// function will look for any incoming values in the PHIs that are supposed to /// be coming from \p OrigMBB but whose definition is actually in \p NewMBB. diff --git a/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp b/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp index 657ec4af4be..fb826c4a32f 100644 --- a/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp +++ b/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp @@ -34,10 +34,6 @@ using namespace llvm; #define DEBUG_TYPE "ppc-tls-dynamic-call" -namespace llvm { - void initializePPCTLSDynamicCallPass(PassRegistry&); -} - namespace { struct PPCTLSDynamicCall : public MachineFunctionPass { static char ID; diff --git a/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp b/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp index 5e45d643d69..3eb0569fb95 100644 --- a/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp +++ b/llvm/lib/Target/PowerPC/PPCTOCRegDeps.cpp @@ -82,10 +82,6 @@ using namespace llvm; #define DEBUG_TYPE "ppc-toc-reg-deps" -namespace llvm { - void initializePPCTOCRegDepsPass(PassRegistry&); -} - namespace { // PPCTOCRegDeps pass - For simple functions without epilogue code, move // returns up, and create conditional returns, to avoid unnecessary diff --git a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp index 444a3a587a4..d45a6e555b7 100644 --- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -100,6 +100,20 @@ extern "C" void LLVMInitializePowerPCTarget() { RegisterTargetMachine<PPCTargetMachine> C(getThePPC64LETarget()); PassRegistry &PR = *PassRegistry::getPassRegistry(); + initializePPCCTRLoopsPass(PR); +#ifndef NDEBUG + initializePPCCTRLoopsVerifyPass(PR); +#endif + initializePPCLoopPreIncPrepPass(PR); + initializePPCTOCRegDepsPass(PR); + initializePPCEarlyReturnPass(PR); + initializePPCVSXCopyPass(PR); + initializePPCVSXFMAMutatePass(PR); + initializePPCVSXSwapRemovalPass(PR); + initializePPCReduceCRLogicalsPass(PR); + initializePPCBSelPass(PR); + initializePPCBranchCoalescingPass(PR); + initializePPCQPXLoadSplatPass(PR); initializePPCBoolRetToIntPass(PR); initializePPCExpandISELPass(PR); initializePPCPreEmitPeepholePass(PR); diff --git a/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp b/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp index f7c3387cc8b..719ed7b6387 100644 --- a/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp +++ b/llvm/lib/Target/PowerPC/PPCVSXCopy.cpp @@ -36,10 +36,6 @@ using namespace llvm; #define DEBUG_TYPE "ppc-vsx-copy" -namespace llvm { - void initializePPCVSXCopyPass(PassRegistry&); -} - namespace { // PPCVSXCopy pass - For copies between VSX registers and non-VSX registers // (Altivec and scalar floating-point registers), we need to transform the diff --git a/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp b/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp index 4e01e77c624..b1ddbb6b837 100644 --- a/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp +++ b/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp @@ -59,10 +59,6 @@ using namespace llvm; #define DEBUG_TYPE "ppc-vsx-swaps" -namespace llvm { - void initializePPCVSXSwapRemovalPass(PassRegistry&); -} - namespace { // A PPCVSXSwapEntry is created for each machine instruction that |

