Skip to content

Commit 4f2762c

Browse files
SC llvm teamSC llvm team
authored andcommitted
Merged main:505523ed3486 into amd-gfx:974bac5619cf
Local branch amd-gfx 974bac5 Merged main:92b821f2dcdd into amd-gfx:6d9e4de0f6ce Remote branch main 505523e [NewPM] Remove CFGOnlyPrinterLegacyPass (llvm#73412)
2 parents 974bac5 + 505523e commit 4f2762c

File tree

16 files changed

+22
-280
lines changed

16 files changed

+22
-280
lines changed

llvm/include/llvm/Analysis/CFGPrinter.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,6 @@ struct DOTGraphTraits<DOTFuncInfo *> : public DefaultDOTGraphTraits {
345345
namespace llvm {
346346
class FunctionPass;
347347
FunctionPass *createCFGPrinterLegacyPassPass();
348-
FunctionPass *createCFGOnlyPrinterLegacyPassPass();
349348
} // End llvm namespace
350349

351350
#endif

llvm/include/llvm/Config/llvm-config.h.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
/* Indicate that this is LLVM compiled from the amd-gfx branch. */
1818
#define LLVM_HAVE_BRANCH_AMD_GFX
19-
#define LLVM_MAIN_REVISION 481720
19+
#define LLVM_MAIN_REVISION 481728
2020

2121
/* Define if LLVM_ENABLE_DUMP is enabled */
2222
#cmakedefine LLVM_ENABLE_DUMP

llvm/include/llvm/InitializePasses.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,14 @@ void initializeBranchRelaxationPass(PassRegistry&);
6565
void initializeBreakCriticalEdgesPass(PassRegistry&);
6666
void initializeBreakFalseDepsPass(PassRegistry&);
6767
void initializeCanonicalizeFreezeInLoopsPass(PassRegistry &);
68-
void initializeCFGOnlyPrinterLegacyPassPass(PassRegistry&);
69-
void initializeCFGOnlyViewerLegacyPassPass(PassRegistry&);
7068
void initializeCFGPrinterLegacyPassPass(PassRegistry&);
7169
void initializeCFGSimplifyPassPass(PassRegistry&);
7270
void initializeCFGuardPass(PassRegistry&);
7371
void initializeCFGuardLongjmpPass(PassRegistry&);
74-
void initializeCFGViewerLegacyPassPass(PassRegistry&);
7572
void initializeCFIFixupPass(PassRegistry&);
7673
void initializeCFIInstrInserterPass(PassRegistry&);
7774
void initializeCallBrPreparePass(PassRegistry &);
7875
void initializeCallGraphDOTPrinterPass(PassRegistry&);
79-
void initializeCallGraphPrinterLegacyPassPass(PassRegistry&);
8076
void initializeCallGraphViewerPass(PassRegistry&);
8177
void initializeCallGraphWrapperPassPass(PassRegistry&);
8278
void initializeCheckDebugMachineModulePass(PassRegistry &);
@@ -243,7 +239,6 @@ void initializePostRAHazardRecognizerPass(PassRegistry&);
243239
void initializePostRAMachineSinkingPass(PassRegistry&);
244240
void initializePostRASchedulerPass(PassRegistry&);
245241
void initializePreISelIntrinsicLoweringLegacyPassPass(PassRegistry&);
246-
void initializePredicateInfoPrinterLegacyPassPass(PassRegistry&);
247242
void initializePrintFunctionPassWrapperPass(PassRegistry&);
248243
void initializePrintModulePassWrapperPass(PassRegistry&);
249244
void initializeProcessImplicitDefsPass(PassRegistry&);
@@ -254,13 +249,11 @@ void initializePseudoProbeInserterPass(PassRegistry &);
254249
void initializeRAGreedyPass(PassRegistry&);
255250
void initializeReachingDefAnalysisPass(PassRegistry&);
256251
void initializeReassociateLegacyPassPass(PassRegistry&);
257-
void initializeRedundantDbgInstEliminationPass(PassRegistry&);
258252
void initializeRegAllocEvictionAdvisorAnalysisPass(PassRegistry &);
259253
void initializeRegAllocFastPass(PassRegistry&);
260254
void initializeRegAllocPriorityAdvisorAnalysisPass(PassRegistry &);
261255
void initializeRegAllocScoringPass(PassRegistry &);
262256
void initializeRegBankSelectPass(PassRegistry&);
263-
void initializeRegToMemLegacyPass(PassRegistry&);
264257
void initializeRegUsageInfoCollectorPass(PassRegistry&);
265258
void initializeRegUsageInfoPropagationPass(PassRegistry&);
266259
void initializeRegionInfoPassPass(PassRegistry&);

llvm/include/llvm/LinkAllPasses.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,11 @@ namespace {
9797
(void) llvm::createNaryReassociatePass();
9898
(void) llvm::createObjCARCContractPass();
9999
(void) llvm::createPromoteMemoryToRegisterPass();
100-
(void) llvm::createDemoteRegisterToMemoryPass();
101100
(void)llvm::createPostDomOnlyPrinterWrapperPassPass();
102101
(void)llvm::createPostDomPrinterWrapperPassPass();
103102
(void)llvm::createPostDomOnlyViewerWrapperPassPass();
104103
(void)llvm::createPostDomViewerWrapperPassPass();
105104
(void) llvm::createReassociatePass();
106-
(void) llvm::createRedundantDbgInstEliminationPass();
107105
(void) llvm::createRegionInfoPass();
108106
(void) llvm::createRegionOnlyPrinterPass();
109107
(void) llvm::createRegionOnlyViewerPass();

llvm/include/llvm/Transforms/Scalar.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,6 @@ class Function;
2323
class FunctionPass;
2424
class Pass;
2525

26-
//===----------------------------------------------------------------------===//
27-
//
28-
// RedundantDbgInstElimination - This pass removes redundant dbg intrinsics
29-
// without modifying the CFG of the function. It is a FunctionPass.
30-
//
31-
Pass *createRedundantDbgInstEliminationPass();
32-
3326
//===----------------------------------------------------------------------===//
3427
//
3528
// DeadCodeElimination - This pass is more powerful than DeadInstElimination,
@@ -74,15 +67,6 @@ Pass *createLoopUnrollPass(int OptLevel = 2, bool OnlyWhenForced = false,
7467
//
7568
Pass *createLoopRotatePass(int MaxHeaderSize = -1, bool PrepareForLTO = false);
7669

77-
//===----------------------------------------------------------------------===//
78-
//
79-
// DemoteRegisterToMemoryPass - This pass is used to demote registers to memory
80-
// references. In basically undoes the PromoteMemoryToRegister pass to make cfg
81-
// hacking easier.
82-
//
83-
FunctionPass *createDemoteRegisterToMemoryPass();
84-
extern char &DemoteRegisterToMemoryID;
85-
8670
//===----------------------------------------------------------------------===//
8771
//
8872
// Reassociate - This pass reassociates commutative expressions in an order that

llvm/include/llvm/Transforms/Utils/PredicateInfo.h

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
#include "llvm/IR/Instructions.h"
5858
#include "llvm/IR/PassManager.h"
5959
#include "llvm/IR/ValueHandle.h"
60-
#include "llvm/Pass.h"
6160

6261
namespace llvm {
6362

@@ -192,7 +191,6 @@ class PredicateInfo {
192191
protected:
193192
// Used by PredicateInfo annotater, dumpers, and wrapper pass.
194193
friend class PredicateInfoAnnotatedWriter;
195-
friend class PredicateInfoPrinterLegacyPass;
196194
friend class PredicateInfoBuilder;
197195

198196
private:
@@ -209,18 +207,6 @@ class PredicateInfo {
209207
SmallSet<AssertingVH<Function>, 20> CreatedDeclarations;
210208
};
211209

212-
// This pass does eager building and then printing of PredicateInfo. It is used
213-
// by
214-
// the tests to be able to build, dump, and verify PredicateInfo.
215-
class PredicateInfoPrinterLegacyPass : public FunctionPass {
216-
public:
217-
PredicateInfoPrinterLegacyPass();
218-
219-
static char ID;
220-
bool runOnFunction(Function &) override;
221-
void getAnalysisUsage(AnalysisUsage &AU) const override;
222-
};
223-
224210
/// Printer pass for \c PredicateInfo.
225211
class PredicateInfoPrinterPass
226212
: public PassInfoMixin<PredicateInfoPrinterPass> {

llvm/lib/Analysis/Analysis.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,8 @@ void llvm::initializeAnalysis(PassRegistry &Registry) {
2323
initializeBranchProbabilityInfoWrapperPassPass(Registry);
2424
initializeCallGraphWrapperPassPass(Registry);
2525
initializeCallGraphDOTPrinterPass(Registry);
26-
initializeCallGraphPrinterLegacyPassPass(Registry);
2726
initializeCallGraphViewerPass(Registry);
28-
initializeCFGViewerLegacyPassPass(Registry);
2927
initializeCFGPrinterLegacyPassPass(Registry);
30-
initializeCFGOnlyViewerLegacyPassPass(Registry);
31-
initializeCFGOnlyPrinterLegacyPassPass(Registry);
3228
initializeCycleInfoWrapperPassPass(Registry);
3329
initializeDependenceAnalysisWrapperPassPass(Registry);
3430
initializeDominanceFrontierWrapperPassPass(Registry);

llvm/lib/Analysis/CFGPrinter.cpp

Lines changed: 0 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -92,37 +92,6 @@ static void viewCFG(Function &F, const BlockFrequencyInfo *BFI,
9292
ViewGraph(&CFGInfo, "cfg." + F.getName(), CFGOnly);
9393
}
9494

95-
namespace {
96-
struct CFGViewerLegacyPass : public FunctionPass {
97-
static char ID; // Pass identifcation, replacement for typeid
98-
CFGViewerLegacyPass() : FunctionPass(ID) {
99-
initializeCFGViewerLegacyPassPass(*PassRegistry::getPassRegistry());
100-
}
101-
102-
bool runOnFunction(Function &F) override {
103-
if (!CFGFuncName.empty() && !F.getName().contains(CFGFuncName))
104-
return false;
105-
auto *BPI = &getAnalysis<BranchProbabilityInfoWrapperPass>().getBPI();
106-
auto *BFI = &getAnalysis<BlockFrequencyInfoWrapperPass>().getBFI();
107-
viewCFG(F, BFI, BPI, getMaxFreq(F, BFI));
108-
return false;
109-
}
110-
111-
void print(raw_ostream &OS, const Module * = nullptr) const override {}
112-
113-
void getAnalysisUsage(AnalysisUsage &AU) const override {
114-
FunctionPass::getAnalysisUsage(AU);
115-
AU.addRequired<BlockFrequencyInfoWrapperPass>();
116-
AU.addRequired<BranchProbabilityInfoWrapperPass>();
117-
AU.setPreservesAll();
118-
}
119-
};
120-
} // namespace
121-
122-
char CFGViewerLegacyPass::ID = 0;
123-
INITIALIZE_PASS(CFGViewerLegacyPass, "view-cfg", "View CFG of function", false,
124-
true)
125-
12695
PreservedAnalyses CFGViewerPass::run(Function &F, FunctionAnalysisManager &AM) {
12796
if (!CFGFuncName.empty() && !F.getName().contains(CFGFuncName))
12897
return PreservedAnalyses::all();
@@ -132,37 +101,6 @@ PreservedAnalyses CFGViewerPass::run(Function &F, FunctionAnalysisManager &AM) {
132101
return PreservedAnalyses::all();
133102
}
134103

135-
namespace {
136-
struct CFGOnlyViewerLegacyPass : public FunctionPass {
137-
static char ID; // Pass identifcation, replacement for typeid
138-
CFGOnlyViewerLegacyPass() : FunctionPass(ID) {
139-
initializeCFGOnlyViewerLegacyPassPass(*PassRegistry::getPassRegistry());
140-
}
141-
142-
bool runOnFunction(Function &F) override {
143-
if (!CFGFuncName.empty() && !F.getName().contains(CFGFuncName))
144-
return false;
145-
auto *BPI = &getAnalysis<BranchProbabilityInfoWrapperPass>().getBPI();
146-
auto *BFI = &getAnalysis<BlockFrequencyInfoWrapperPass>().getBFI();
147-
viewCFG(F, BFI, BPI, getMaxFreq(F, BFI), /*CFGOnly=*/true);
148-
return false;
149-
}
150-
151-
void print(raw_ostream &OS, const Module * = nullptr) const override {}
152-
153-
void getAnalysisUsage(AnalysisUsage &AU) const override {
154-
FunctionPass::getAnalysisUsage(AU);
155-
AU.addRequired<BlockFrequencyInfoWrapperPass>();
156-
AU.addRequired<BranchProbabilityInfoWrapperPass>();
157-
AU.setPreservesAll();
158-
}
159-
};
160-
} // namespace
161-
162-
char CFGOnlyViewerLegacyPass::ID = 0;
163-
INITIALIZE_PASS(CFGOnlyViewerLegacyPass, "view-cfg-only",
164-
"View CFG of function (with no function bodies)", false, true)
165-
166104
PreservedAnalyses CFGOnlyViewerPass::run(Function &F,
167105
FunctionAnalysisManager &AM) {
168106
if (!CFGFuncName.empty() && !F.getName().contains(CFGFuncName))
@@ -214,37 +152,6 @@ PreservedAnalyses CFGPrinterPass::run(Function &F,
214152
return PreservedAnalyses::all();
215153
}
216154

217-
namespace {
218-
struct CFGOnlyPrinterLegacyPass : public FunctionPass {
219-
static char ID; // Pass identification, replacement for typeid
220-
CFGOnlyPrinterLegacyPass() : FunctionPass(ID) {
221-
initializeCFGOnlyPrinterLegacyPassPass(*PassRegistry::getPassRegistry());
222-
}
223-
224-
bool runOnFunction(Function &F) override {
225-
if (!CFGFuncName.empty() && !F.getName().contains(CFGFuncName))
226-
return false;
227-
auto *BPI = &getAnalysis<BranchProbabilityInfoWrapperPass>().getBPI();
228-
auto *BFI = &getAnalysis<BlockFrequencyInfoWrapperPass>().getBFI();
229-
writeCFGToDotFile(F, BFI, BPI, getMaxFreq(F, BFI), /*CFGOnly=*/true);
230-
return false;
231-
}
232-
void print(raw_ostream &OS, const Module * = nullptr) const override {}
233-
234-
void getAnalysisUsage(AnalysisUsage &AU) const override {
235-
FunctionPass::getAnalysisUsage(AU);
236-
AU.addRequired<BlockFrequencyInfoWrapperPass>();
237-
AU.addRequired<BranchProbabilityInfoWrapperPass>();
238-
AU.setPreservesAll();
239-
}
240-
};
241-
} // namespace
242-
243-
char CFGOnlyPrinterLegacyPass::ID = 0;
244-
INITIALIZE_PASS(CFGOnlyPrinterLegacyPass, "dot-cfg-only",
245-
"Print CFG of function to 'dot' file (with no function bodies)",
246-
false, true)
247-
248155
PreservedAnalyses CFGOnlyPrinterPass::run(Function &F,
249156
FunctionAnalysisManager &AM) {
250157
if (!CFGFuncName.empty() && !F.getName().contains(CFGFuncName))
@@ -286,10 +193,6 @@ FunctionPass *llvm::createCFGPrinterLegacyPassPass() {
286193
return new CFGPrinterLegacyPass();
287194
}
288195

289-
FunctionPass *llvm::createCFGOnlyPrinterLegacyPassPass() {
290-
return new CFGOnlyPrinterLegacyPass();
291-
}
292-
293196
/// Find all blocks on the paths which terminate with a deoptimize or
294197
/// unreachable (i.e. all blocks which are post-dominated by a deoptimize
295198
/// or unreachable). These paths are hidden if the corresponding cl::opts

llvm/lib/Analysis/CallGraph.cpp

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -382,33 +382,3 @@ void CallGraphWrapperPass::print(raw_ostream &OS, const Module *) const {
382382
LLVM_DUMP_METHOD
383383
void CallGraphWrapperPass::dump() const { print(dbgs(), nullptr); }
384384
#endif
385-
386-
namespace {
387-
388-
struct CallGraphPrinterLegacyPass : public ModulePass {
389-
static char ID; // Pass ID, replacement for typeid
390-
391-
CallGraphPrinterLegacyPass() : ModulePass(ID) {
392-
initializeCallGraphPrinterLegacyPassPass(*PassRegistry::getPassRegistry());
393-
}
394-
395-
void getAnalysisUsage(AnalysisUsage &AU) const override {
396-
AU.setPreservesAll();
397-
AU.addRequiredTransitive<CallGraphWrapperPass>();
398-
}
399-
400-
bool runOnModule(Module &M) override {
401-
getAnalysis<CallGraphWrapperPass>().print(errs(), &M);
402-
return false;
403-
}
404-
};
405-
406-
} // end anonymous namespace
407-
408-
char CallGraphPrinterLegacyPass::ID = 0;
409-
410-
INITIALIZE_PASS_BEGIN(CallGraphPrinterLegacyPass, "print-callgraph",
411-
"Print a call graph", true, true)
412-
INITIALIZE_PASS_DEPENDENCY(CallGraphWrapperPass)
413-
INITIALIZE_PASS_END(CallGraphPrinterLegacyPass, "print-callgraph",
414-
"Print a call graph", true, true)

llvm/lib/DWARFLinkerParallel/DWARFLinkerCompileUnit.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ enum ResolveInterCUReferencesMode : bool {
4747

4848
/// Stores all information related to a compile unit, be it in its original
4949
/// instance of the object file or its brand new cloned and generated DIE tree.
50-
class CompileUnit : public DwarfUnit {
50+
/// NOTE: we need alignment of at least 8 bytes as we use
51+
/// PointerIntPair<CompileUnit *, 3> in the DependencyTracker.h
52+
class alignas(8) CompileUnit : public DwarfUnit {
5153
public:
5254
/// The stages of new compile unit processing.
5355
enum class Stage : uint8_t {

llvm/lib/DWARFLinkerParallel/DependencyTracker.h

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class DependencyTracker {
135135
LiveRootWorklistItemTy(const LiveRootWorklistItemTy &) = default;
136136
LiveRootWorklistItemTy(LiveRootWorklistActionTy Action,
137137
UnitEntryPairTy RootEntry) {
138-
RootCU.setInt(static_cast<uint8_t>(Action));
138+
RootCU.setInt(Action);
139139
RootCU.setPointer(RootEntry.CU);
140140

141141
RootDieEntry = RootEntry.DieEntry;
@@ -144,7 +144,7 @@ class DependencyTracker {
144144
UnitEntryPairTy RootEntry,
145145
UnitEntryPairTy ReferencedBy) {
146146
RootCU.setPointer(RootEntry.CU);
147-
RootCU.setInt(static_cast<uint8_t>(Action));
147+
RootCU.setInt(Action);
148148
RootDieEntry = RootEntry.DieEntry;
149149

150150
ReferencedByCU = ReferencedBy.CU;
@@ -175,7 +175,22 @@ class DependencyTracker {
175175
/// Root entry.
176176
/// ASSUMPTION: 3 bits are used to store LiveRootWorklistActionTy value.
177177
/// Thus LiveRootWorklistActionTy should have no more eight elements.
178-
PointerIntPair<CompileUnit *, 3> RootCU;
178+
179+
/// Pointer traits for CompileUnit.
180+
struct CompileUnitPointerTraits {
181+
static inline void *getAsVoidPointer(CompileUnit *P) { return P; }
182+
static inline CompileUnit *getFromVoidPointer(void *P) {
183+
return (CompileUnit *)P;
184+
}
185+
static constexpr int NumLowBitsAvailable = 3;
186+
static_assert(
187+
alignof(CompileUnit) >= (1 << NumLowBitsAvailable),
188+
"CompileUnit insufficiently aligned to have enough low bits.");
189+
};
190+
191+
PointerIntPair<CompileUnit *, 3, LiveRootWorklistActionTy,
192+
CompileUnitPointerTraits>
193+
RootCU;
179194
const DWARFDebugInfoEntry *RootDieEntry = nullptr;
180195

181196
/// Another root entry which references this RootDieEntry.

0 commit comments

Comments
 (0)