Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ec406e8

Browse filesBrowse files
authored
[GlobalISel] Add a GISelValueTracker printing pass (#139687)
This adds a GISelValueTrackingPrinterPass that can print the known bits and sign bit of each def in a function. It is built on the new pass manager and so adds a NPM GISelValueTrackingAnalysis, renaming the older class to GISelValueTrackingAnalysisLegacy. The first 2 functions from the AArch64GISelMITest are ported over to an mir test to show it working. It also runs successfully on all files in llvm/test/CodeGen/AArch64/GlobalISel/*.mir that are not invalid. It can hopefully be used to test GlobalISel known bits analysis more directly in common cases, without jumping through the hoops that the C++ tests requires.
1 parent 82b179c commit ec406e8
Copy full SHA for ec406e8
Expand file treeCollapse file tree

24 files changed

+175
-116
lines changed

‎llvm/docs/GlobalISel/KnownBits.rst

Copy file name to clipboardExpand all lines: llvm/docs/GlobalISel/KnownBits.rst
+4-4Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,18 @@ dependency with ``INITIALIZE_PASS_DEPENDENCY``.
6666
...
6767

6868
INITIALIZE_PASS_BEGIN(...)
69-
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysis)
69+
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysisLegacy)
7070
INITIALIZE_PASS_END(...)
7171

7272
and require the pass in ``getAnalysisUsage``.
7373

7474
.. code-block:: c++
7575

7676
void MyPass::getAnalysisUsage(AnalysisUsage &AU) const {
77-
AU.addRequired<GISelValueTrackingAnalysis>();
77+
AU.addRequired<GISelValueTrackingAnalysisLegacy>();
7878
// Optional: If your pass preserves known bits analysis (many do) then
7979
// indicate that it's preserved for re-use by another pass here.
80-
AU.addPreserved<GISelValueTrackingAnalysis>();
80+
AU.addPreserved<GISelValueTrackingAnalysisLegacy>();
8181
}
8282

8383
Then it's just a matter of fetching the analysis and using it:
@@ -86,7 +86,7 @@ Then it's just a matter of fetching the analysis and using it:
8686

8787
bool MyPass::runOnMachineFunction(MachineFunction &MF) {
8888
...
89-
GISelValueTracking &VT = getAnalysis<GISelValueTrackingAnalysis>().get(MF);
89+
GISelValueTracking &VT = getAnalysis<GISelValueTrackingAnalysisLegacy>().get(MF);
9090
...
9191
MachineInstr *MI = ...;
9292
KnownBits Known = VT->getKnownBits(MI->getOperand(0).getReg());

‎llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h

Copy file name to clipboardExpand all lines: llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h
+27-3Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "llvm/CodeGen/GlobalISel/GISelChangeObserver.h"
1919
#include "llvm/CodeGen/MachineFunctionPass.h"
2020
#include "llvm/CodeGen/Register.h"
21+
#include "llvm/IR/PassManager.h"
2122
#include "llvm/InitializePasses.h"
2223
#include "llvm/Support/KnownBits.h"
2324

@@ -104,19 +105,42 @@ class GISelValueTracking : public GISelChangeObserver {
104105
/// Eventually add other features such as caching/ser/deserializing
105106
/// to MIR etc. Those implementations can derive from GISelValueTracking
106107
/// and override computeKnownBitsImpl.
107-
class GISelValueTrackingAnalysis : public MachineFunctionPass {
108+
class GISelValueTrackingAnalysisLegacy : public MachineFunctionPass {
108109
std::unique_ptr<GISelValueTracking> Info;
109110

110111
public:
111112
static char ID;
112-
GISelValueTrackingAnalysis() : MachineFunctionPass(ID) {
113-
initializeGISelValueTrackingAnalysisPass(*PassRegistry::getPassRegistry());
113+
GISelValueTrackingAnalysisLegacy() : MachineFunctionPass(ID) {
114+
initializeGISelValueTrackingAnalysisLegacyPass(
115+
*PassRegistry::getPassRegistry());
114116
}
115117
GISelValueTracking &get(MachineFunction &MF);
116118
void getAnalysisUsage(AnalysisUsage &AU) const override;
117119
bool runOnMachineFunction(MachineFunction &MF) override;
118120
void releaseMemory() override { Info.reset(); }
119121
};
122+
123+
class GISelValueTrackingAnalysis
124+
: public AnalysisInfoMixin<GISelValueTrackingAnalysis> {
125+
friend AnalysisInfoMixin<GISelValueTrackingAnalysis>;
126+
static AnalysisKey Key;
127+
128+
public:
129+
using Result = GISelValueTracking;
130+
131+
Result run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM);
132+
};
133+
134+
class GISelValueTrackingPrinterPass
135+
: public PassInfoMixin<GISelValueTrackingPrinterPass> {
136+
raw_ostream &OS;
137+
138+
public:
139+
GISelValueTrackingPrinterPass(raw_ostream &OS) : OS(OS) {}
140+
141+
PreservedAnalyses run(MachineFunction &MF,
142+
MachineFunctionAnalysisManager &MFAM);
143+
};
120144
} // namespace llvm
121145

122146
#endif // LLVM_CODEGEN_GLOBALISEL_GISELVALUETRACKING_H

‎llvm/include/llvm/InitializePasses.h

Copy file name to clipboardExpand all lines: llvm/include/llvm/InitializePasses.h
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ void initializeLazyValueInfoWrapperPassPass(PassRegistry &);
155155
void initializeLegacyLICMPassPass(PassRegistry &);
156156
void initializeLegalizerPass(PassRegistry &);
157157
void initializeGISelCSEAnalysisWrapperPassPass(PassRegistry &);
158-
void initializeGISelValueTrackingAnalysisPass(PassRegistry &);
158+
void initializeGISelValueTrackingAnalysisLegacyPass(PassRegistry &);
159159
void initializeLiveDebugValuesLegacyPass(PassRegistry &);
160160
void initializeLiveDebugVariablesWrapperLegacyPass(PassRegistry &);
161161
void initializeLiveIntervalsWrapperPassPass(PassRegistry &);

‎llvm/include/llvm/Passes/MachinePassRegistry.def

Copy file name to clipboardExpand all lines: llvm/include/llvm/Passes/MachinePassRegistry.def
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ LOOP_PASS("loop-term-fold", LoopTermFoldPass())
9898
// computed. (We still either need to regenerate kill flags after regalloc, or
9999
// preferably fix the scavenger to not depend on them).
100100
MACHINE_FUNCTION_ANALYSIS("edge-bundles", EdgeBundlesAnalysis())
101+
MACHINE_FUNCTION_ANALYSIS("gisel-value-tracking", GISelValueTrackingAnalysis())
101102
MACHINE_FUNCTION_ANALYSIS("livedebugvars", LiveDebugVariablesAnalysis())
102103
MACHINE_FUNCTION_ANALYSIS("live-intervals", LiveIntervalsAnalysis())
103104
MACHINE_FUNCTION_ANALYSIS("live-reg-matrix", LiveRegMatrixAnalysis())
@@ -165,6 +166,7 @@ MACHINE_FUNCTION_PASS("post-RA-sched", PostRASchedulerPass(TM))
165166
MACHINE_FUNCTION_PASS("postmisched", PostMachineSchedulerPass(TM))
166167
MACHINE_FUNCTION_PASS("post-ra-pseudos", ExpandPostRAPseudosPass())
167168
MACHINE_FUNCTION_PASS("print", PrintMIRPass())
169+
MACHINE_FUNCTION_PASS("print<gisel-value-tracking>", GISelValueTrackingPrinterPass(errs()))
168170
MACHINE_FUNCTION_PASS("print<livedebugvars>", LiveDebugVariablesPrinterPass(errs()))
169171
MACHINE_FUNCTION_PASS("print<live-intervals>", LiveIntervalsPrinterPass(errs()))
170172
MACHINE_FUNCTION_PASS("print<live-stacks>", LiveStacksPrinterPass(errs()))

‎llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp

Copy file name to clipboardExpand all lines: llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
+42-5Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727

2828
using namespace llvm;
2929

30-
char llvm::GISelValueTrackingAnalysis::ID = 0;
30+
char llvm::GISelValueTrackingAnalysisLegacy::ID = 0;
3131

32-
INITIALIZE_PASS(GISelValueTrackingAnalysis, DEBUG_TYPE,
32+
INITIALIZE_PASS(GISelValueTrackingAnalysisLegacy, DEBUG_TYPE,
3333
"Analysis for ComputingKnownBits", false, true)
3434

3535
GISelValueTracking::GISelValueTracking(MachineFunction &MF, unsigned MaxDepth)
@@ -893,20 +893,57 @@ unsigned GISelValueTracking::computeNumSignBits(Register R, unsigned Depth) {
893893
return computeNumSignBits(R, DemandedElts, Depth);
894894
}
895895

896-
void GISelValueTrackingAnalysis::getAnalysisUsage(AnalysisUsage &AU) const {
896+
void GISelValueTrackingAnalysisLegacy::getAnalysisUsage(
897+
AnalysisUsage &AU) const {
897898
AU.setPreservesAll();
898899
MachineFunctionPass::getAnalysisUsage(AU);
899900
}
900901

901-
bool GISelValueTrackingAnalysis::runOnMachineFunction(MachineFunction &MF) {
902+
bool GISelValueTrackingAnalysisLegacy::runOnMachineFunction(
903+
MachineFunction &MF) {
902904
return false;
903905
}
904906

905-
GISelValueTracking &GISelValueTrackingAnalysis::get(MachineFunction &MF) {
907+
GISelValueTracking &GISelValueTrackingAnalysisLegacy::get(MachineFunction &MF) {
906908
if (!Info) {
907909
unsigned MaxDepth =
908910
MF.getTarget().getOptLevel() == CodeGenOptLevel::None ? 2 : 6;
909911
Info = std::make_unique<GISelValueTracking>(MF, MaxDepth);
910912
}
911913
return *Info;
912914
}
915+
916+
AnalysisKey GISelValueTrackingAnalysis::Key;
917+
918+
GISelValueTracking
919+
GISelValueTrackingAnalysis::run(MachineFunction &MF,
920+
MachineFunctionAnalysisManager &MFAM) {
921+
return Result(MF);
922+
}
923+
924+
PreservedAnalyses
925+
GISelValueTrackingPrinterPass::run(MachineFunction &MF,
926+
MachineFunctionAnalysisManager &MFAM) {
927+
auto &VTA = MFAM.getResult<GISelValueTrackingAnalysis>(MF);
928+
const auto &MRI = MF.getRegInfo();
929+
OS << "name: ";
930+
MF.getFunction().printAsOperand(OS, /*PrintType=*/false);
931+
OS << '\n';
932+
933+
for (MachineBasicBlock &BB : MF) {
934+
for (MachineInstr &MI : BB) {
935+
for (MachineOperand &MO : MI.defs()) {
936+
if (!MO.isReg() || MO.getReg().isPhysical())
937+
continue;
938+
Register Reg = MO.getReg();
939+
if (!MRI.getType(Reg).isValid())
940+
continue;
941+
KnownBits Known = VTA.getKnownBits(Reg);
942+
unsigned SignedBits = VTA.computeNumSignBits(Reg);
943+
OS << " " << MO << " KnownBits:" << Known << " SignBits:" << SignedBits
944+
<< '\n';
945+
};
946+
}
947+
}
948+
return PreservedAnalyses::all();
949+
}

‎llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp

Copy file name to clipboardExpand all lines: llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
+4-4Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ INITIALIZE_PASS_BEGIN(InstructionSelect, DEBUG_TYPE,
5656
"Select target instructions out of generic instructions",
5757
false, false)
5858
INITIALIZE_PASS_DEPENDENCY(TargetPassConfig)
59-
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysis)
59+
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysisLegacy)
6060
INITIALIZE_PASS_DEPENDENCY(ProfileSummaryInfoWrapperPass)
6161
INITIALIZE_PASS_DEPENDENCY(LazyBlockFrequencyInfoPass)
6262
INITIALIZE_PASS_END(InstructionSelect, DEBUG_TYPE,
@@ -120,8 +120,8 @@ class InstructionSelect::MIIteratorMaintainer : public GISelChangeObserver {
120120

121121
void InstructionSelect::getAnalysisUsage(AnalysisUsage &AU) const {
122122
AU.addRequired<TargetPassConfig>();
123-
AU.addRequired<GISelValueTrackingAnalysis>();
124-
AU.addPreserved<GISelValueTrackingAnalysis>();
123+
AU.addRequired<GISelValueTrackingAnalysisLegacy>();
124+
AU.addPreserved<GISelValueTrackingAnalysisLegacy>();
125125

126126
if (OptLevel != CodeGenOptLevel::None) {
127127
AU.addRequired<ProfileSummaryInfoWrapperPass>();
@@ -146,7 +146,7 @@ bool InstructionSelect::runOnMachineFunction(MachineFunction &MF) {
146146
OptLevel = MF.getFunction().hasOptNone() ? CodeGenOptLevel::None
147147
: MF.getTarget().getOptLevel();
148148

149-
VT = &getAnalysis<GISelValueTrackingAnalysis>().get(MF);
149+
VT = &getAnalysis<GISelValueTrackingAnalysisLegacy>().get(MF);
150150
if (OptLevel != CodeGenOptLevel::None) {
151151
PSI = &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
152152
if (PSI && PSI->hasProfileSummary())

‎llvm/lib/CodeGen/GlobalISel/Legalizer.cpp

Copy file name to clipboardExpand all lines: llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
+5-4Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ INITIALIZE_PASS_BEGIN(Legalizer, DEBUG_TYPE,
7575
false)
7676
INITIALIZE_PASS_DEPENDENCY(TargetPassConfig)
7777
INITIALIZE_PASS_DEPENDENCY(GISelCSEAnalysisWrapperPass)
78-
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysis)
78+
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysisLegacy)
7979
INITIALIZE_PASS_END(Legalizer, DEBUG_TYPE,
8080
"Legalize the Machine IR a function's Machine IR", false,
8181
false)
@@ -86,8 +86,8 @@ void Legalizer::getAnalysisUsage(AnalysisUsage &AU) const {
8686
AU.addRequired<TargetPassConfig>();
8787
AU.addRequired<GISelCSEAnalysisWrapperPass>();
8888
AU.addPreserved<GISelCSEAnalysisWrapperPass>();
89-
AU.addRequired<GISelValueTrackingAnalysis>();
90-
AU.addPreserved<GISelValueTrackingAnalysis>();
89+
AU.addRequired<GISelValueTrackingAnalysisLegacy>();
90+
AU.addPreserved<GISelValueTrackingAnalysisLegacy>();
9191
getSelectionDAGFallbackAnalysisUsage(AU);
9292
MachineFunctionPass::getAnalysisUsage(AU);
9393
}
@@ -341,7 +341,8 @@ bool Legalizer::runOnMachineFunction(MachineFunction &MF) {
341341
AuxObservers.push_back(&LocObserver);
342342

343343
// This allows Known Bits Analysis in the legalizer.
344-
GISelValueTracking *VT = &getAnalysis<GISelValueTrackingAnalysis>().get(MF);
344+
GISelValueTracking *VT =
345+
&getAnalysis<GISelValueTrackingAnalysisLegacy>().get(MF);
345346

346347
const LegalizerInfo &LI = *MF.getSubtarget().getLegalizerInfo();
347348
MFResult Result = legalizeMachineFunction(MF, LI, AuxObservers, LocObserver,

‎llvm/lib/Passes/CMakeLists.txt

Copy file name to clipboardExpand all lines: llvm/lib/Passes/CMakeLists.txt
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ add_llvm_component_library(LLVMPasses
1919
Analysis
2020
CFGuard
2121
CodeGen
22+
GlobalISel
2223
Core
2324
Coroutines
2425
HipStdPar

‎llvm/lib/Passes/PassBuilder.cpp

Copy file name to clipboardExpand all lines: llvm/lib/Passes/PassBuilder.cpp
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
#include "llvm/CodeGen/FinalizeISel.h"
100100
#include "llvm/CodeGen/FixupStatepointCallerSaved.h"
101101
#include "llvm/CodeGen/GCMetadata.h"
102+
#include "llvm/CodeGen/GlobalISel/GISelValueTracking.h"
102103
#include "llvm/CodeGen/GlobalMerge.h"
103104
#include "llvm/CodeGen/GlobalMergeFunctions.h"
104105
#include "llvm/CodeGen/HardwareLoops.h"

‎llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp

Copy file name to clipboardExpand all lines: llvm/lib/Target/AArch64/GISel/AArch64O0PreLegalizerCombiner.cpp
+5-4Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ void AArch64O0PreLegalizerCombiner::getAnalysisUsage(AnalysisUsage &AU) const {
135135
AU.addRequired<TargetPassConfig>();
136136
AU.setPreservesCFG();
137137
getSelectionDAGFallbackAnalysisUsage(AU);
138-
AU.addRequired<GISelValueTrackingAnalysis>();
139-
AU.addPreserved<GISelValueTrackingAnalysis>();
138+
AU.addRequired<GISelValueTrackingAnalysisLegacy>();
139+
AU.addPreserved<GISelValueTrackingAnalysisLegacy>();
140140
MachineFunctionPass::getAnalysisUsage(AU);
141141
}
142142

@@ -153,7 +153,8 @@ bool AArch64O0PreLegalizerCombiner::runOnMachineFunction(MachineFunction &MF) {
153153
auto &TPC = getAnalysis<TargetPassConfig>();
154154

155155
const Function &F = MF.getFunction();
156-
GISelValueTracking *VT = &getAnalysis<GISelValueTrackingAnalysis>().get(MF);
156+
GISelValueTracking *VT =
157+
&getAnalysis<GISelValueTrackingAnalysisLegacy>().get(MF);
157158

158159
const AArch64Subtarget &ST = MF.getSubtarget<AArch64Subtarget>();
159160

@@ -174,7 +175,7 @@ INITIALIZE_PASS_BEGIN(AArch64O0PreLegalizerCombiner, DEBUG_TYPE,
174175
"Combine AArch64 machine instrs before legalization",
175176
false, false)
176177
INITIALIZE_PASS_DEPENDENCY(TargetPassConfig)
177-
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysis)
178+
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysisLegacy)
178179
INITIALIZE_PASS_DEPENDENCY(GISelCSEAnalysisWrapperPass)
179180
INITIALIZE_PASS_END(AArch64O0PreLegalizerCombiner, DEBUG_TYPE,
180181
"Combine AArch64 machine instrs before legalization", false,

‎llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp

Copy file name to clipboardExpand all lines: llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
+5-4Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -636,8 +636,8 @@ void AArch64PostLegalizerCombiner::getAnalysisUsage(AnalysisUsage &AU) const {
636636
AU.addRequired<TargetPassConfig>();
637637
AU.setPreservesCFG();
638638
getSelectionDAGFallbackAnalysisUsage(AU);
639-
AU.addRequired<GISelValueTrackingAnalysis>();
640-
AU.addPreserved<GISelValueTrackingAnalysis>();
639+
AU.addRequired<GISelValueTrackingAnalysisLegacy>();
640+
AU.addPreserved<GISelValueTrackingAnalysisLegacy>();
641641
if (!IsOptNone) {
642642
AU.addRequired<MachineDominatorTreeWrapperPass>();
643643
AU.addPreserved<MachineDominatorTreeWrapperPass>();
@@ -668,7 +668,8 @@ bool AArch64PostLegalizerCombiner::runOnMachineFunction(MachineFunction &MF) {
668668
const AArch64Subtarget &ST = MF.getSubtarget<AArch64Subtarget>();
669669
const auto *LI = ST.getLegalizerInfo();
670670

671-
GISelValueTracking *VT = &getAnalysis<GISelValueTrackingAnalysis>().get(MF);
671+
GISelValueTracking *VT =
672+
&getAnalysis<GISelValueTrackingAnalysisLegacy>().get(MF);
672673
MachineDominatorTree *MDT =
673674
IsOptNone ? nullptr
674675
: &getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree();
@@ -883,7 +884,7 @@ INITIALIZE_PASS_BEGIN(AArch64PostLegalizerCombiner, DEBUG_TYPE,
883884
"Combine AArch64 MachineInstrs after legalization", false,
884885
false)
885886
INITIALIZE_PASS_DEPENDENCY(TargetPassConfig)
886-
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysis)
887+
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysisLegacy)
887888
INITIALIZE_PASS_END(AArch64PostLegalizerCombiner, DEBUG_TYPE,
888889
"Combine AArch64 MachineInstrs after legalization", false,
889890
false)

‎llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp

Copy file name to clipboardExpand all lines: llvm/lib/Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp
+5-4Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -820,8 +820,8 @@ void AArch64PreLegalizerCombiner::getAnalysisUsage(AnalysisUsage &AU) const {
820820
AU.addRequired<TargetPassConfig>();
821821
AU.setPreservesCFG();
822822
getSelectionDAGFallbackAnalysisUsage(AU);
823-
AU.addRequired<GISelValueTrackingAnalysis>();
824-
AU.addPreserved<GISelValueTrackingAnalysis>();
823+
AU.addRequired<GISelValueTrackingAnalysisLegacy>();
824+
AU.addPreserved<GISelValueTrackingAnalysisLegacy>();
825825
AU.addRequired<MachineDominatorTreeWrapperPass>();
826826
AU.addPreserved<MachineDominatorTreeWrapperPass>();
827827
AU.addRequired<GISelCSEAnalysisWrapperPass>();
@@ -852,7 +852,8 @@ bool AArch64PreLegalizerCombiner::runOnMachineFunction(MachineFunction &MF) {
852852
const Function &F = MF.getFunction();
853853
bool EnableOpt =
854854
MF.getTarget().getOptLevel() != CodeGenOptLevel::None && !skipFunction(F);
855-
GISelValueTracking *VT = &getAnalysis<GISelValueTrackingAnalysis>().get(MF);
855+
GISelValueTracking *VT =
856+
&getAnalysis<GISelValueTrackingAnalysisLegacy>().get(MF);
856857
MachineDominatorTree *MDT =
857858
&getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree();
858859
CombinerInfo CInfo(/*AllowIllegalOps*/ true, /*ShouldLegalizeIllegal*/ false,
@@ -874,7 +875,7 @@ INITIALIZE_PASS_BEGIN(AArch64PreLegalizerCombiner, DEBUG_TYPE,
874875
"Combine AArch64 machine instrs before legalization",
875876
false, false)
876877
INITIALIZE_PASS_DEPENDENCY(TargetPassConfig)
877-
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysis)
878+
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysisLegacy)
878879
INITIALIZE_PASS_DEPENDENCY(GISelCSEAnalysisWrapperPass)
879880
INITIALIZE_PASS_END(AArch64PreLegalizerCombiner, DEBUG_TYPE,
880881
"Combine AArch64 machine instrs before legalization", false,

‎llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp

Copy file name to clipboardExpand all lines: llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
+5-4Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -462,8 +462,8 @@ void AMDGPUPostLegalizerCombiner::getAnalysisUsage(AnalysisUsage &AU) const {
462462
AU.addRequired<TargetPassConfig>();
463463
AU.setPreservesCFG();
464464
getSelectionDAGFallbackAnalysisUsage(AU);
465-
AU.addRequired<GISelValueTrackingAnalysis>();
466-
AU.addPreserved<GISelValueTrackingAnalysis>();
465+
AU.addRequired<GISelValueTrackingAnalysisLegacy>();
466+
AU.addPreserved<GISelValueTrackingAnalysisLegacy>();
467467
if (!IsOptNone) {
468468
AU.addRequired<MachineDominatorTreeWrapperPass>();
469469
AU.addPreserved<MachineDominatorTreeWrapperPass>();
@@ -490,7 +490,8 @@ bool AMDGPUPostLegalizerCombiner::runOnMachineFunction(MachineFunction &MF) {
490490
const AMDGPULegalizerInfo *LI =
491491
static_cast<const AMDGPULegalizerInfo *>(ST.getLegalizerInfo());
492492

493-
GISelValueTracking *VT = &getAnalysis<GISelValueTrackingAnalysis>().get(MF);
493+
GISelValueTracking *VT =
494+
&getAnalysis<GISelValueTrackingAnalysisLegacy>().get(MF);
494495
MachineDominatorTree *MDT =
495496
IsOptNone ? nullptr
496497
: &getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree();
@@ -512,7 +513,7 @@ INITIALIZE_PASS_BEGIN(AMDGPUPostLegalizerCombiner, DEBUG_TYPE,
512513
"Combine AMDGPU machine instrs after legalization", false,
513514
false)
514515
INITIALIZE_PASS_DEPENDENCY(TargetPassConfig)
515-
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysis)
516+
INITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysisLegacy)
516517
INITIALIZE_PASS_END(AMDGPUPostLegalizerCombiner, DEBUG_TYPE,
517518
"Combine AMDGPU machine instrs after legalization", false,
518519
false)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.