Skip to content

Commit 0ba6ca6

Browse files
committed
[CodeGen][NPM] Port FEntryInserter to NPM
1 parent a01bc11 commit 0ba6ca6

File tree

7 files changed

+49
-8
lines changed

7 files changed

+49
-8
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//===- llvm/CodeGen/FEntryInserter.h ----------------------------*- C++ -*-===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
#ifndef LLVM_CODEGEN_FENTRYINSERTER_H
10+
#define LLVM_CODEGEN_FENTRYINSERTER_H
11+
12+
#include "llvm/CodeGen/MachinePassManager.h"
13+
14+
namespace llvm {
15+
16+
class FEntryInserterPass : public PassInfoMixin<FEntryInserterPass> {
17+
public:
18+
PreservedAnalyses run(MachineFunction &MF,
19+
MachineFunctionAnalysisManager &MFAM);
20+
};
21+
22+
} // namespace llvm
23+
24+
#endif // LLVM_CODEGEN_FENTRYINSERTER_H

llvm/include/llvm/InitializePasses.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ void initializeExpandPostRALegacyPass(PassRegistry &);
112112
void initializeExpandReductionsPass(PassRegistry &);
113113
void initializeExpandVariadicsPass(PassRegistry &);
114114
void initializeExternalAAWrapperPassPass(PassRegistry &);
115-
void initializeFEntryInserterPass(PassRegistry &);
115+
void initializeFEntryInserterLegacyPass(PassRegistry &);
116116
void initializeFinalizeISelPass(PassRegistry &);
117117
void initializeFinalizeMachineBundlesPass(PassRegistry &);
118118
void initializeFixIrreduciblePass(PassRegistry &);

llvm/include/llvm/Passes/CodeGenPassBuilder.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "llvm/CodeGen/ExpandMemCmp.h"
3434
#include "llvm/CodeGen/ExpandPostRAPseudos.h"
3535
#include "llvm/CodeGen/ExpandReductions.h"
36+
#include "llvm/CodeGen/FEntryInserter.h"
3637
#include "llvm/CodeGen/FinalizeISel.h"
3738
#include "llvm/CodeGen/GCMetadata.h"
3839
#include "llvm/CodeGen/GlobalMerge.h"

llvm/include/llvm/Passes/MachinePassRegistry.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ MACHINE_FUNCTION_PASS("dead-mi-elimination", DeadMachineInstructionElimPass())
142142
MACHINE_FUNCTION_PASS("early-ifcvt", EarlyIfConverterPass())
143143
MACHINE_FUNCTION_PASS("early-machinelicm", EarlyMachineLICMPass())
144144
MACHINE_FUNCTION_PASS("early-tailduplication", EarlyTailDuplicatePass())
145+
MACHINE_FUNCTION_PASS("fentry-insert", FEntryInserterPass())
145146
MACHINE_FUNCTION_PASS("finalize-isel", FinalizeISelPass())
146147
MACHINE_FUNCTION_PASS("localstackalloc", LocalStackSlotAllocationPass())
147148
MACHINE_FUNCTION_PASS("machine-cp", MachineCopyPropagationPass())
@@ -258,7 +259,6 @@ DUMMY_MACHINE_FUNCTION_PASS("cfi-fixup", CFIFixupPass)
258259
DUMMY_MACHINE_FUNCTION_PASS("cfi-instr-inserter", CFIInstrInserterPass)
259260
DUMMY_MACHINE_FUNCTION_PASS("detect-dead-lanes", DetectDeadLanesPass)
260261
DUMMY_MACHINE_FUNCTION_PASS("dot-machine-cfg", MachineCFGPrinter)
261-
DUMMY_MACHINE_FUNCTION_PASS("fentry-insert", FEntryInserterPass)
262262
DUMMY_MACHINE_FUNCTION_PASS("fixup-statepoint-caller-saved", FixupStatepointCallerSavedPass)
263263
DUMMY_MACHINE_FUNCTION_PASS("fs-profile-loader", MIRProfileLoaderNewPass)
264264
DUMMY_MACHINE_FUNCTION_PASS("funclet-layout", FuncletLayoutPass)

llvm/lib/CodeGen/CodeGen.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
4343
initializeExpandLargeFpConvertLegacyPassPass(Registry);
4444
initializeExpandMemCmpLegacyPassPass(Registry);
4545
initializeExpandPostRALegacyPass(Registry);
46-
initializeFEntryInserterPass(Registry);
46+
initializeFEntryInserterLegacyPass(Registry);
4747
initializeFinalizeISelPass(Registry);
4848
initializeFinalizeMachineBundlesPass(Registry);
4949
initializeFixupStatepointCallerSavedPass(Registry);

llvm/lib/CodeGen/FEntryInserter.cpp

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
#include "llvm/CodeGen/FEntryInserter.h"
1314
#include "llvm/CodeGen/MachineFunction.h"
1415
#include "llvm/CodeGen/MachineFunctionPass.h"
1516
#include "llvm/CodeGen/MachineInstrBuilder.h"
17+
#include "llvm/CodeGen/MachinePassManager.h"
1618
#include "llvm/CodeGen/TargetInstrInfo.h"
1719
#include "llvm/CodeGen/TargetSubtargetInfo.h"
1820
#include "llvm/IR/Function.h"
@@ -21,17 +23,30 @@
2123
using namespace llvm;
2224

2325
namespace {
24-
struct FEntryInserter : public MachineFunctionPass {
26+
struct FEntryInserter {
27+
bool run(MachineFunction &MF);
28+
};
29+
30+
struct FEntryInserterLegacy : public MachineFunctionPass {
2531
static char ID; // Pass identification, replacement for typeid
26-
FEntryInserter() : MachineFunctionPass(ID) {
27-
initializeFEntryInserterPass(*PassRegistry::getPassRegistry());
32+
FEntryInserterLegacy() : MachineFunctionPass(ID) {
33+
initializeFEntryInserterLegacyPass(*PassRegistry::getPassRegistry());
2834
}
2935

30-
bool runOnMachineFunction(MachineFunction &F) override;
36+
bool runOnMachineFunction(MachineFunction &F) override {
37+
return FEntryInserter().run(F);
38+
}
3139
};
3240
}
3341

34-
bool FEntryInserter::runOnMachineFunction(MachineFunction &MF) {
42+
PreservedAnalyses FEntryInserterPass::run(MachineFunction &MF,
43+
MachineFunctionAnalysisManager &AM) {
44+
if (!FEntryInserter().run(MF))
45+
return PreservedAnalyses::all();
46+
return getMachineFunctionPassPreservedAnalyses();
47+
}
48+
49+
bool FEntryInserter::run(MachineFunction &MF) {
3550
const std::string FEntryName = std::string(
3651
MF.getFunction().getFnAttribute("fentry-call").getValueAsString());
3752
if (FEntryName != "true")

llvm/lib/Passes/PassBuilder.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
#include "llvm/CodeGen/ExpandLargeFpConvert.h"
9292
#include "llvm/CodeGen/ExpandMemCmp.h"
9393
#include "llvm/CodeGen/ExpandPostRAPseudos.h"
94+
#include "llvm/CodeGen/FEntryInserter.h"
9495
#include "llvm/CodeGen/FinalizeISel.h"
9596
#include "llvm/CodeGen/GCMetadata.h"
9697
#include "llvm/CodeGen/GlobalMerge.h"

0 commit comments

Comments
 (0)