Skip to content

Commit 44f638f

Browse files
authored
CodeGen][NewPM] Port PostRAScheduler to NPM. (#125798)
1 parent 16c721f commit 44f638f

18 files changed

+196
-112
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
//===- llvm/CodeGen/PostRASchedulerList.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_POSTRASCHEDULERLIST_H
10+
#define LLVM_CODEGEN_POSTRASCHEDULERLIST_H
11+
12+
#include "llvm/CodeGen/MachinePassManager.h"
13+
14+
namespace llvm {
15+
16+
class PostRASchedulerPass : public PassInfoMixin<PostRASchedulerPass> {
17+
const TargetMachine *TM;
18+
19+
public:
20+
PostRASchedulerPass(const TargetMachine *TM) : TM(TM) {}
21+
PreservedAnalyses run(MachineFunction &MF,
22+
MachineFunctionAnalysisManager &MFAM);
23+
24+
MachineFunctionProperties getRequiredProperties() const {
25+
return MachineFunctionProperties().set(
26+
MachineFunctionProperties::Property::NoVRegs);
27+
}
28+
};
29+
30+
} // namespace llvm
31+
32+
#endif // LLVM_CODEGEN_POSTRASCHEDULERLIST_H

llvm/include/llvm/InitializePasses.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ void initializePostInlineEntryExitInstrumenterPass(PassRegistry &);
241241
void initializePostMachineSchedulerLegacyPass(PassRegistry &);
242242
void initializePostRAHazardRecognizerPass(PassRegistry &);
243243
void initializePostRAMachineSinkingPass(PassRegistry &);
244-
void initializePostRASchedulerPass(PassRegistry &);
244+
void initializePostRASchedulerLegacyPass(PassRegistry &);
245245
void initializePreISelIntrinsicLoweringLegacyPassPass(PassRegistry &);
246246
void initializePrintFunctionPassWrapperPass(PassRegistry &);
247247
void initializePrintModulePassWrapperPass(PassRegistry &);

llvm/include/llvm/Passes/CodeGenPassBuilder.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
#include "llvm/CodeGen/OptimizePHIs.h"
5656
#include "llvm/CodeGen/PHIElimination.h"
5757
#include "llvm/CodeGen/PeepholeOptimizer.h"
58+
#include "llvm/CodeGen/PostRASchedulerList.h"
5859
#include "llvm/CodeGen/PreISelIntrinsicLowering.h"
5960
#include "llvm/CodeGen/RegAllocFast.h"
6061
#include "llvm/CodeGen/RegUsageInfoCollector.h"
@@ -960,7 +961,7 @@ Error CodeGenPassBuilder<Derived, TargetMachineT>::addMachinePasses(
960961
if (Opt.MISchedPostRA)
961962
addPass(PostMachineSchedulerPass(&TM));
962963
else
963-
addPass(PostRASchedulerPass());
964+
addPass(PostRASchedulerPass(&TM));
964965
}
965966

966967
// GC

llvm/include/llvm/Passes/MachinePassRegistry.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ MACHINE_FUNCTION_PASS("opt-phis", OptimizePHIsPass())
149149
MACHINE_FUNCTION_PASS("peephole-opt", PeepholeOptimizerPass())
150150
MACHINE_FUNCTION_PASS("phi-node-elimination", PHIEliminationPass())
151151
MACHINE_FUNCTION_PASS("postmisched", PostMachineSchedulerPass(TM))
152+
MACHINE_FUNCTION_PASS("post-RA-sched", PostRASchedulerPass(TM))
152153
MACHINE_FUNCTION_PASS("print", PrintMIRPass())
153154
MACHINE_FUNCTION_PASS("print<livedebugvars>", LiveDebugVariablesPrinterPass(errs()))
154155
MACHINE_FUNCTION_PASS("print<live-intervals>", LiveIntervalsPrinterPass(errs()))
@@ -247,7 +248,6 @@ DUMMY_MACHINE_FUNCTION_PASS("machine-uniformity", MachineUniformityInfoWrapperPa
247248
DUMMY_MACHINE_FUNCTION_PASS("machineinstr-printer", MachineFunctionPrinterPass)
248249
DUMMY_MACHINE_FUNCTION_PASS("mirfs-discriminators", MIRAddFSDiscriminatorsPass)
249250
DUMMY_MACHINE_FUNCTION_PASS("patchable-function", PatchableFunctionPass)
250-
DUMMY_MACHINE_FUNCTION_PASS("post-RA-sched", PostRASchedulerPass)
251251
DUMMY_MACHINE_FUNCTION_PASS("postra-machine-sink", PostRAMachineSinkingPass)
252252
DUMMY_MACHINE_FUNCTION_PASS("postrapseudos", ExpandPostRAPseudosPass)
253253
DUMMY_MACHINE_FUNCTION_PASS("print-machine-cycles", MachineCycleInfoPrinterPass)

llvm/lib/CodeGen/CodeGen.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
108108
initializePostMachineSchedulerLegacyPass(Registry);
109109
initializePostRAHazardRecognizerPass(Registry);
110110
initializePostRAMachineSinkingPass(Registry);
111-
initializePostRASchedulerPass(Registry);
111+
initializePostRASchedulerLegacyPass(Registry);
112112
initializePreISelIntrinsicLoweringLegacyPassPass(Registry);
113113
initializeProcessImplicitDefsPass(Registry);
114114
initializeRABasicPass(Registry);

0 commit comments

Comments
 (0)