Skip to content

Commit 12fe15f

Browse files
authored
[NFC][LLVM][Hexagon] Cleanup pass initialization for Hexagon (llvm#134431)
- Remove pass initialization calls from pass constructors. - Move pass initialization and creation function declarations to Hexagon.h and remove them from individual .cpp files. - Add calls for pass initialization in Hexagon target initialization. - llvm#111767
1 parent 6b78bbc commit 12fe15f

37 files changed

+170
-396
lines changed

llvm/lib/Target/Hexagon/Hexagon.h

Lines changed: 95 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,104 @@
1414
#ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGON_H
1515
#define LLVM_LIB_TARGET_HEXAGON_HEXAGON_H
1616

17+
#include "llvm/Support/CodeGen.h"
18+
1719
namespace llvm {
18-
class HexagonTargetMachine;
19-
class ImmutablePass;
20-
class PassRegistry;
20+
class HexagonTargetMachine;
21+
class ImmutablePass;
22+
class PassRegistry;
23+
class FunctionPass;
24+
class Pass;
25+
26+
extern char &HexagonCopyHoistingID;
27+
extern char &HexagonExpandCondsetsID;
28+
extern char &HexagonTfrCleanupID;
29+
void initializeHexagonBitSimplifyPass(PassRegistry &);
30+
void initializeHexagonBranchRelaxationPass(PassRegistry &);
31+
void initializeHexagonCFGOptimizerPass(PassRegistry &);
32+
void initializeHexagonCommonGEPPass(PassRegistry &);
33+
void initializeHexagonCopyHoistingPass(PassRegistry &);
34+
void initializeHexagonConstExtendersPass(PassRegistry &);
35+
void initializeHexagonConstPropagationPass(PassRegistry &);
36+
void initializeHexagonCopyToCombinePass(PassRegistry &);
37+
void initializeHexagonDAGToDAGISelLegacyPass(PassRegistry &);
38+
void initializeHexagonEarlyIfConversionPass(PassRegistry &);
39+
void initializeHexagonExpandCondsetsPass(PassRegistry &);
40+
void initializeHexagonGenMemAbsolutePass(PassRegistry &);
41+
void initializeHexagonGenMuxPass(PassRegistry &);
42+
void initializeHexagonHardwareLoopsPass(PassRegistry &);
43+
void initializeHexagonLoopIdiomRecognizeLegacyPassPass(PassRegistry &);
44+
void initializeHexagonLoopAlignPass(PassRegistry &);
45+
void initializeHexagonLoopReschedulingPass(PassRegistry &);
46+
void initializeHexagonMaskPass(PassRegistry &);
47+
void initializeHexagonMergeActivateWeightPass(PassRegistry &);
48+
void initializeHexagonNewValueJumpPass(PassRegistry &);
49+
void initializeHexagonOptAddrModePass(PassRegistry &);
50+
void initializeHexagonPacketizerPass(PassRegistry &);
51+
void initializeHexagonRDFOptPass(PassRegistry &);
52+
void initializeHexagonSplitDoubleRegsPass(PassRegistry &);
53+
void initializeHexagonTfrCleanupPass(PassRegistry &);
54+
void initializeHexagonVExtractPass(PassRegistry &);
55+
void initializeHexagonVectorCombineLegacyPass(PassRegistry &);
56+
void initializeHexagonVectorLoopCarriedReuseLegacyPassPass(PassRegistry &);
57+
void initializeHexagonFixupHwLoopsPass(PassRegistry &);
58+
void initializeHexagonCallFrameInformationPass(PassRegistry &);
59+
void initializeHexagonGenExtractPass(PassRegistry &);
60+
void initializeHexagonGenInsertPass(PassRegistry &);
61+
void initializeHexagonGenPredicatePass(PassRegistry &);
62+
void initializeHexagonLoadWideningPass(PassRegistry &);
63+
void initializeHexagonStoreWideningPass(PassRegistry &);
64+
void initializeHexagonOptimizeSZextendsPass(PassRegistry &);
65+
void initializeHexagonPeepholePass(PassRegistry &);
66+
void initializeHexagonSplitConst32AndConst64Pass(PassRegistry &);
67+
void initializeHexagonVectorPrintPass(PassRegistry &);
68+
69+
Pass *createHexagonLoopIdiomPass();
70+
Pass *createHexagonVectorLoopCarriedReuseLegacyPass();
71+
72+
/// Creates a Hexagon-specific Target Transformation Info pass.
73+
ImmutablePass *
74+
createHexagonTargetTransformInfoPass(const HexagonTargetMachine *TM);
2175

22-
/// Creates a Hexagon-specific Target Transformation Info pass.
23-
ImmutablePass *createHexagonTargetTransformInfoPass(const HexagonTargetMachine *TM);
76+
FunctionPass *createHexagonBitSimplify();
77+
FunctionPass *createHexagonBranchRelaxation();
78+
FunctionPass *createHexagonCallFrameInformation();
79+
FunctionPass *createHexagonCFGOptimizer();
80+
FunctionPass *createHexagonCommonGEP();
81+
FunctionPass *createHexagonConstExtenders();
82+
FunctionPass *createHexagonConstPropagationPass();
83+
FunctionPass *createHexagonCopyHoisting();
84+
FunctionPass *createHexagonCopyToCombine();
85+
FunctionPass *createHexagonEarlyIfConversion();
86+
FunctionPass *createHexagonFixupHwLoops();
87+
FunctionPass *createHexagonGenExtract();
88+
FunctionPass *createHexagonGenInsert();
89+
FunctionPass *createHexagonGenMemAbsolute();
90+
FunctionPass *createHexagonGenMux();
91+
FunctionPass *createHexagonGenPredicate();
92+
FunctionPass *createHexagonHardwareLoops();
93+
FunctionPass *createHexagonISelDag(HexagonTargetMachine &TM,
94+
CodeGenOptLevel OptLevel);
95+
FunctionPass *createHexagonLoopAlign();
96+
FunctionPass *createHexagonLoopRescheduling();
97+
FunctionPass *createHexagonMask();
98+
FunctionPass *createHexagonMergeActivateWeight();
99+
FunctionPass *createHexagonNewValueJump();
100+
FunctionPass *createHexagonOptAddrMode();
101+
FunctionPass *createHexagonOptimizeSZextends();
102+
FunctionPass *createHexagonPacketizer(bool Minimal);
103+
FunctionPass *createHexagonPeephole();
104+
FunctionPass *createHexagonRDFOpt();
105+
FunctionPass *createHexagonSplitConst32AndConst64();
106+
FunctionPass *createHexagonSplitDoubleRegs();
107+
FunctionPass *createHexagonStoreWidening();
108+
FunctionPass *createHexagonLoadWidening();
109+
FunctionPass *createHexagonTfrCleanup();
110+
FunctionPass *createHexagonVectorCombineLegacyPass();
111+
FunctionPass *createHexagonVectorPrint();
112+
FunctionPass *createHexagonVExtract();
113+
FunctionPass *createHexagonExpandCondsets();
24114

25-
void initializeHexagonDAGToDAGISelLegacyPass(PassRegistry &);
26115
} // end namespace llvm;
27116

28117
#endif

llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//===----------------------------------------------------------------------===//
88

99
#include "BitTracker.h"
10+
#include "Hexagon.h"
1011
#include "HexagonBitTracker.h"
1112
#include "HexagonInstrInfo.h"
1213
#include "HexagonRegisterInfo.h"
@@ -50,13 +51,6 @@ static unsigned CountBitSplit = 0;
5051
static cl::opt<unsigned> RegisterSetLimit("hexbit-registerset-limit",
5152
cl::Hidden, cl::init(1000));
5253

53-
namespace llvm {
54-
55-
void initializeHexagonBitSimplifyPass(PassRegistry& Registry);
56-
FunctionPass *createHexagonBitSimplify();
57-
58-
} // end namespace llvm
59-
6054
namespace {
6155

6256
// Set of virtual registers, based on BitVector.
@@ -2897,22 +2891,13 @@ bool HexagonBitSimplify::runOnMachineFunction(MachineFunction &MF) {
28972891
// r5:4 = memd(r0++#8)
28982892
// }:endloop0
28992893

2900-
namespace llvm {
2901-
2902-
FunctionPass *createHexagonLoopRescheduling();
2903-
void initializeHexagonLoopReschedulingPass(PassRegistry&);
2904-
2905-
} // end namespace llvm
2906-
29072894
namespace {
29082895

29092896
class HexagonLoopRescheduling : public MachineFunctionPass {
29102897
public:
29112898
static char ID;
29122899

2913-
HexagonLoopRescheduling() : MachineFunctionPass(ID) {
2914-
initializeHexagonLoopReschedulingPass(*PassRegistry::getPassRegistry());
2915-
}
2900+
HexagonLoopRescheduling() : MachineFunctionPass(ID) {}
29162901

29172902
bool runOnMachineFunction(MachineFunction &MF) override;
29182903

@@ -2957,8 +2942,8 @@ namespace {
29572942

29582943
char HexagonLoopRescheduling::ID = 0;
29592944

2960-
INITIALIZE_PASS(HexagonLoopRescheduling, "hexagon-loop-resched",
2961-
"Hexagon Loop Rescheduling", false, false)
2945+
INITIALIZE_PASS(HexagonLoopRescheduling, "hexagon-loop-resched-pass",
2946+
"Hexagon Loop Rescheduling", false, false)
29622947

29632948
HexagonLoopRescheduling::PhiInfo::PhiInfo(MachineInstr &P,
29642949
MachineBasicBlock &B) {

llvm/lib/Target/Hexagon/HexagonBranchRelaxation.cpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,13 @@ static cl::opt<uint32_t>
3737
BranchRelaxSafetyBuffer("branch-relax-safety-buffer", cl::init(200),
3838
cl::Hidden, cl::desc("safety buffer size"));
3939

40-
namespace llvm {
41-
42-
FunctionPass *createHexagonBranchRelaxation();
43-
void initializeHexagonBranchRelaxationPass(PassRegistry&);
44-
45-
} // end namespace llvm
46-
4740
namespace {
4841

4942
struct HexagonBranchRelaxation : public MachineFunctionPass {
5043
public:
5144
static char ID;
5245

53-
HexagonBranchRelaxation() : MachineFunctionPass(ID) {
54-
initializeHexagonBranchRelaxationPass(*PassRegistry::getPassRegistry());
55-
}
46+
HexagonBranchRelaxation() : MachineFunctionPass(ID) {}
5647

5748
bool runOnMachineFunction(MachineFunction &MF) override;
5849

llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,6 @@ using namespace llvm;
2424

2525
#define DEBUG_TYPE "hexagon_cfg"
2626

27-
namespace llvm {
28-
29-
FunctionPass *createHexagonCFGOptimizer();
30-
void initializeHexagonCFGOptimizerPass(PassRegistry&);
31-
32-
} // end namespace llvm
33-
3427
namespace {
3528

3629
class HexagonCFGOptimizer : public MachineFunctionPass {
@@ -41,9 +34,7 @@ class HexagonCFGOptimizer : public MachineFunctionPass {
4134
public:
4235
static char ID;
4336

44-
HexagonCFGOptimizer() : MachineFunctionPass(ID) {
45-
initializeHexagonCFGOptimizerPass(*PassRegistry::getPassRegistry());
46-
}
37+
HexagonCFGOptimizer() : MachineFunctionPass(ID) {}
4738

4839
StringRef getPassName() const override { return "Hexagon CFG Optimizer"; }
4940
bool runOnMachineFunction(MachineFunction &Fn) override;

llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
#include "Hexagon.h"
10+
911
#include "llvm/ADT/ArrayRef.h"
1012
#include "llvm/ADT/FoldingSet.h"
1113
#include "llvm/ADT/GraphTraits.h"
@@ -58,12 +60,6 @@ static cl::opt<bool> OptEnableInv("commgep-inv", cl::init(true), cl::Hidden);
5860
static cl::opt<bool> OptEnableConst("commgep-const", cl::init(true),
5961
cl::Hidden);
6062

61-
namespace llvm {
62-
63-
void initializeHexagonCommonGEPPass(PassRegistry&);
64-
65-
} // end namespace llvm
66-
6763
namespace {
6864

6965
struct GepNode;
@@ -97,9 +93,7 @@ namespace {
9793
public:
9894
static char ID;
9995

100-
HexagonCommonGEP() : FunctionPass(ID) {
101-
initializeHexagonCommonGEPPass(*PassRegistry::getPassRegistry());
102-
}
96+
HexagonCommonGEP() : FunctionPass(ID) {}
10397

10498
bool runOnFunction(Function &F) override;
10599
StringRef getPassName() const override { return "Hexagon Common GEP"; }

llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ static cl::opt<unsigned>
3737
ReplaceLimit("hexagon-cext-limit", cl::init(0), cl::Hidden,
3838
cl::desc("Maximum number of replacements"));
3939

40-
namespace llvm {
41-
void initializeHexagonConstExtendersPass(PassRegistry&);
42-
FunctionPass *createHexagonConstExtenders();
43-
}
44-
4540
static int32_t adjustUp(int32_t V, uint8_t A, uint8_t O) {
4641
assert(isPowerOf2_32(A));
4742
int32_t U = (V & -A) + O;

llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1827,13 +1827,6 @@ bool MachineConstEvaluator::evaluateSplati(const APInt &A1, unsigned Bits,
18271827
// ----------------------------------------------------------------------
18281828
// Hexagon-specific code.
18291829

1830-
namespace llvm {
1831-
1832-
FunctionPass *createHexagonConstPropagationPass();
1833-
void initializeHexagonConstPropagationPass(PassRegistry &Registry);
1834-
1835-
} // end namespace llvm
1836-
18371830
namespace {
18381831

18391832
class HexagonConstEvaluator : public MachineConstEvaluator {

llvm/lib/Target/Hexagon/HexagonCopyHoisting.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,13 @@ using namespace llvm;
2828
static cl::opt<std::string> CPHoistFn("cphoistfn", cl::Hidden, cl::desc(""),
2929
cl::init(""));
3030

31-
namespace llvm {
32-
void initializeHexagonCopyHoistingPass(PassRegistry &Registry);
33-
FunctionPass *createHexagonCopyHoisting();
34-
} // namespace llvm
35-
3631
namespace {
3732

3833
class HexagonCopyHoisting : public MachineFunctionPass {
3934

4035
public:
4136
static char ID;
42-
HexagonCopyHoisting() : MachineFunctionPass(ID), MFN(nullptr), MRI(nullptr) {
43-
initializeHexagonCopyHoistingPass(*PassRegistry::getPassRegistry());
44-
}
37+
HexagonCopyHoisting() : MachineFunctionPass(ID), MFN(nullptr), MRI(nullptr) {}
4538

4639
StringRef getPassName() const override { return "Hexagon Copy Hoisting"; }
4740

llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,6 @@ MaxNumOfInstsBetweenNewValueStoreAndTFR("max-num-inst-between-tfr-and-nv-store",
4848
cl::desc("Maximum distance between a tfr feeding a store we "
4949
"consider the store still to be newifiable"));
5050

51-
namespace llvm {
52-
FunctionPass *createHexagonCopyToCombine();
53-
void initializeHexagonCopyToCombinePass(PassRegistry&);
54-
}
55-
56-
5751
namespace {
5852

5953
class HexagonCopyToCombine : public MachineFunctionPass {

llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,6 @@
9191

9292
using namespace llvm;
9393

94-
namespace llvm {
95-
96-
FunctionPass *createHexagonEarlyIfConversion();
97-
void initializeHexagonEarlyIfConversionPass(PassRegistry& Registry);
98-
99-
} // end namespace llvm
100-
10194
static cl::opt<bool> EnableHexagonBP("enable-hexagon-br-prob", cl::Hidden,
10295
cl::init(true), cl::desc("Enable branch probability info"));
10396
static cl::opt<unsigned> SizeLimit("eif-limit", cl::init(6), cl::Hidden,

0 commit comments

Comments
 (0)