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
- StringRef getPassName () const override {
35
- return " RISC-V Indirect Branch Tracking" ;
36
- }
38
+ StringRef getPassName () const override { return PASS_NAME; }
37
39
38
40
bool runOnMachineFunction (MachineFunction &MF) override ;
39
41
40
42
private:
41
- static char ID;
42
43
const Align LpadAlign = Align(4 );
43
44
};
44
45
45
46
} // end anonymous namespace
46
47
47
- char RISCVIndirectBranchTrackingPass::ID = 0 ;
48
+ INITIALIZE_PASS (RISCVIndirectBranchTracking, DEBUG_TYPE, PASS_NAME, false ,
49
+ false )
50
+
51
+ char RISCVIndirectBranchTracking::ID = 0;
48
52
49
53
FunctionPass *llvm::createRISCVIndirectBranchTrackingPass () {
50
- return new RISCVIndirectBranchTrackingPass ();
54
+ return new RISCVIndirectBranchTracking ();
51
55
}
52
56
53
57
static void emitLpad (MachineBasicBlock &MBB, const RISCVInstrInfo *TII,
@@ -57,8 +61,7 @@ static void emitLpad(MachineBasicBlock &MBB, const RISCVInstrInfo *TII,
57
61
.addImm (Label);
58
62
}
59
63
60
- bool RISCVIndirectBranchTrackingPass::runOnMachineFunction (
61
- MachineFunction &MF) {
64
+ bool RISCVIndirectBranchTracking::runOnMachineFunction (MachineFunction &MF) {
62
65
const auto &Subtarget = MF.getSubtarget <RISCVSubtarget>();
63
66
const RISCVInstrInfo *TII = Subtarget.getInstrInfo ();
64
67
if (!Subtarget.hasStdExtZicfilp ())
0 commit comments