20
20
#include " llvm/CodeGen/MachineInstrBuilder.h"
21
21
#include " llvm/CodeGen/MachineModuleInfo.h"
22
22
23
+ #define DEBUG_TYPE " riscv-indrect-branch-tracking"
24
+ #define PASS_NAME " RISC-V Indirect Branch Tracking"
25
+
23
26
using namespace llvm ;
24
27
25
28
cl::opt<uint32_t > PreferredLandingPadLabel (
26
29
" riscv-landing-pad-label" , cl::ReallyHidden,
27
30
cl::desc (" Use preferred fixed label for all labels" ));
28
31
29
32
namespace {
30
- class RISCVIndirectBranchTrackingPass : public MachineFunctionPass {
33
+ class RISCVIndirectBranchTracking : public MachineFunctionPass {
31
34
public:
32
- RISCVIndirectBranchTrackingPass () : MachineFunctionPass(ID) {}
35
+ static char ID;
36
+ RISCVIndirectBranchTracking () : MachineFunctionPass(ID) {}
33
37
34
38
StringRef getPassName () const override {
35
- return " RISC-V Indirect Branch Tracking " ;
39
+ return PASS_NAME ;
36
40
}
37
41
38
42
bool runOnMachineFunction (MachineFunction &MF) override ;
39
43
40
44
private:
41
- static char ID;
42
45
const Align LpadAlign = Align(4 );
43
46
};
44
47
45
48
} // end anonymous namespace
46
49
47
- char RISCVIndirectBranchTrackingPass::ID = 0 ;
50
+ INITIALIZE_PASS (RISCVIndirectBranchTracking, DEBUG_TYPE, PASS_NAME, false , false )
51
+
52
+ char RISCVIndirectBranchTracking::ID = 0;
48
53
49
54
FunctionPass *llvm::createRISCVIndirectBranchTrackingPass () {
50
- return new RISCVIndirectBranchTrackingPass ();
55
+ return new RISCVIndirectBranchTracking ();
51
56
}
52
57
53
58
static void emitLpad (MachineBasicBlock &MBB, const RISCVInstrInfo *TII,
@@ -57,7 +62,7 @@ static void emitLpad(MachineBasicBlock &MBB, const RISCVInstrInfo *TII,
57
62
.addImm (Label);
58
63
}
59
64
60
- bool RISCVIndirectBranchTrackingPass ::runOnMachineFunction (
65
+ bool RISCVIndirectBranchTracking ::runOnMachineFunction (
61
66
MachineFunction &MF) {
62
67
const auto &Subtarget = MF.getSubtarget <RISCVSubtarget>();
63
68
const RISCVInstrInfo *TII = Subtarget.getInstrInfo ();
0 commit comments