Skip to content

Commit 6c143a8

Browse files
authored
[CodeGen][NewPM] Port MachineCSE pass to new pass manager. (#106605)
1 parent 028174a commit 6c143a8

21 files changed

+216
-134
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//===- llvm/CodeGen/MachineCSE.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_MACHINECSE_H
10+
#define LLVM_CODEGEN_MACHINECSE_H
11+
12+
#include "llvm/CodeGen/MachinePassManager.h"
13+
14+
namespace llvm {
15+
16+
class MachineCSEPass : public PassInfoMixin<MachineCSEPass> {
17+
public:
18+
PreservedAnalyses run(MachineFunction &MF,
19+
MachineFunctionAnalysisManager &MFAM);
20+
21+
MachineFunctionProperties getRequiredProperties() {
22+
return MachineFunctionProperties().set(
23+
MachineFunctionProperties::Property::IsSSA);
24+
}
25+
};
26+
27+
} // namespace llvm
28+
29+
#endif // LLVM_CODEGEN_MACHINECSE_H

llvm/include/llvm/CodeGen/Passes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ namespace llvm {
330330
extern char &GCMachineCodeAnalysisID;
331331

332332
/// MachineCSE - This pass performs global CSE on machine instructions.
333-
extern char &MachineCSEID;
333+
extern char &MachineCSELegacyID;
334334

335335
/// MIRCanonicalizer - This pass canonicalizes MIR by renaming vregs
336336
/// according to the semantics of the instruction as well as hoists

llvm/include/llvm/InitializePasses.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ void initializeMachineBlockPlacementPass(PassRegistry &);
188188
void initializeMachineBlockPlacementStatsPass(PassRegistry &);
189189
void initializeMachineBranchProbabilityInfoWrapperPassPass(PassRegistry &);
190190
void initializeMachineCFGPrinterPass(PassRegistry &);
191-
void initializeMachineCSEPass(PassRegistry &);
191+
void initializeMachineCSELegacyPass(PassRegistry &);
192192
void initializeMachineCombinerPass(PassRegistry &);
193193
void initializeMachineCopyPropagationPass(PassRegistry &);
194194
void initializeMachineCycleInfoPrinterPassPass(PassRegistry &);

llvm/include/llvm/Passes/CodeGenPassBuilder.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
#include "llvm/CodeGen/LocalStackSlotAllocation.h"
4343
#include "llvm/CodeGen/LowerEmuTLS.h"
4444
#include "llvm/CodeGen/MIRPrinter.h"
45+
#include "llvm/CodeGen/MachineCSE.h"
4546
#include "llvm/CodeGen/MachineFunctionAnalysis.h"
4647
#include "llvm/CodeGen/MachineModuleInfo.h"
4748
#include "llvm/CodeGen/MachinePassManager.h"

llvm/include/llvm/Passes/MachinePassRegistry.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ MACHINE_FUNCTION_ANALYSIS("slot-indexes", SlotIndexesAnalysis())
131131
#endif
132132
MACHINE_FUNCTION_PASS("dead-mi-elimination", DeadMachineInstructionElimPass())
133133
MACHINE_FUNCTION_PASS("finalize-isel", FinalizeISelPass())
134+
MACHINE_FUNCTION_PASS("machine-cse", MachineCSEPass())
134135
MACHINE_FUNCTION_PASS("localstackalloc", LocalStackSlotAllocationPass())
135136
MACHINE_FUNCTION_PASS("no-op-machine-function", NoOpMachineFunctionPass())
136137
MACHINE_FUNCTION_PASS("phi-node-elimination", PHIEliminationPass())
@@ -219,7 +220,6 @@ DUMMY_MACHINE_FUNCTION_PASS("livedebugvalues", LiveDebugValuesPass)
219220
DUMMY_MACHINE_FUNCTION_PASS("lrshrink", LiveRangeShrinkPass)
220221
DUMMY_MACHINE_FUNCTION_PASS("machine-combiner", MachineCombinerPass)
221222
DUMMY_MACHINE_FUNCTION_PASS("machine-cp", MachineCopyPropagationPass)
222-
DUMMY_MACHINE_FUNCTION_PASS("machine-cse", MachineCSEPass)
223223
DUMMY_MACHINE_FUNCTION_PASS("machine-function-splitter", MachineFunctionSplitterPass)
224224
DUMMY_MACHINE_FUNCTION_PASS("machine-latecleanup", MachineLateInstrsCleanupPass)
225225
DUMMY_MACHINE_FUNCTION_PASS("machine-sanmd", MachineSanitizerBinaryMetadata)

llvm/lib/CodeGen/CodeGen.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
7575
initializeMachineBlockPlacementPass(Registry);
7676
initializeMachineBlockPlacementStatsPass(Registry);
7777
initializeMachineCFGPrinterPass(Registry);
78-
initializeMachineCSEPass(Registry);
78+
initializeMachineCSELegacyPass(Registry);
7979
initializeMachineCombinerPass(Registry);
8080
initializeMachineCopyPropagationPass(Registry);
8181
initializeMachineCycleInfoPrinterPassPass(Registry);

0 commit comments

Comments
 (0)