[llvm] [CodeGen][GC] Remove `GCInfoPrinter` (PR #75033)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 11 01:37:06 PST 2023
https://github.com/paperchalice created https://github.com/llvm/llvm-project/pull/75033
This pass is broken and seems no one uses it.
See #74972.
>From c77cf3791e22c044c539f130fda68aebabb481c0 Mon Sep 17 00:00:00 2001
From: PaperChalice <liujunchang97 at outlook.com>
Date: Mon, 11 Dec 2023 17:27:54 +0800
Subject: [PATCH] [CodeGen][GC] Remove `GCInfoPrinter` This pass is broken and
looks like no one uses this pass.
---
.../llvm/CodeGen/MachinePassRegistry.def | 1 -
llvm/include/llvm/CodeGen/Passes.h | 4 --
.../include/llvm/Target/CGPassBuilderOption.h | 1 -
llvm/lib/CodeGen/GCMetadata.cpp | 71 -------------------
llvm/lib/CodeGen/TargetPassConfig.cpp | 13 ++--
5 files changed, 4 insertions(+), 86 deletions(-)
diff --git a/llvm/include/llvm/CodeGen/MachinePassRegistry.def b/llvm/include/llvm/CodeGen/MachinePassRegistry.def
index e6e979a4582c7a..33c6e00a090169 100644
--- a/llvm/include/llvm/CodeGen/MachinePassRegistry.def
+++ b/llvm/include/llvm/CodeGen/MachinePassRegistry.def
@@ -125,7 +125,6 @@ DUMMY_FUNCTION_PASS("cfguard-check", CFGuardCheckPass, ())
DUMMY_FUNCTION_PASS("cfguard-dispatch", CFGuardDispatchPass, ())
DUMMY_FUNCTION_PASS("codegenprepare", CodeGenPreparePass, ())
DUMMY_FUNCTION_PASS("expandmemcmp", ExpandMemCmpPass, ())
-DUMMY_FUNCTION_PASS("gc-info-printer", GCInfoPrinterPass, ())
DUMMY_FUNCTION_PASS("gc-lowering", GCLoweringPass, ())
DUMMY_FUNCTION_PASS("indirectbr-expand", IndirectBrExpandPass, ())
DUMMY_FUNCTION_PASS("select-optimize", SelectOptimizePass, ())
diff --git a/llvm/include/llvm/CodeGen/Passes.h b/llvm/include/llvm/CodeGen/Passes.h
index 712048017bca1a..80def6dfef4951 100644
--- a/llvm/include/llvm/CodeGen/Passes.h
+++ b/llvm/include/llvm/CodeGen/Passes.h
@@ -324,10 +324,6 @@ namespace llvm {
/// branch folding).
extern char &GCMachineCodeAnalysisID;
- /// Creates a pass to print GC metadata.
- ///
- FunctionPass *createGCInfoPrinter(raw_ostream &OS);
-
/// MachineCSE - This pass performs global CSE on machine instructions.
extern char &MachineCSEID;
diff --git a/llvm/include/llvm/Target/CGPassBuilderOption.h b/llvm/include/llvm/Target/CGPassBuilderOption.h
index 85abddbb229292..72cb1b383da485 100644
--- a/llvm/include/llvm/Target/CGPassBuilderOption.h
+++ b/llvm/include/llvm/Target/CGPassBuilderOption.h
@@ -42,7 +42,6 @@ struct CGPassBuilderOption {
bool DisableConstantHoisting = false;
bool DisableSelectOptimize = true;
bool PrintISelInput = false;
- bool PrintGCInfo = false;
bool RequiresCodeGenSCCOrder = false;
RunOutliner EnableMachineOutliner = RunOutliner::TargetDefault;
diff --git a/llvm/lib/CodeGen/GCMetadata.cpp b/llvm/lib/CodeGen/GCMetadata.cpp
index 4d27143c529823..49e03b4b132c6e 100644
--- a/llvm/lib/CodeGen/GCMetadata.cpp
+++ b/llvm/lib/CodeGen/GCMetadata.cpp
@@ -24,25 +24,6 @@
using namespace llvm;
-namespace {
-
-class Printer : public FunctionPass {
- static char ID;
-
- raw_ostream &OS;
-
-public:
- explicit Printer(raw_ostream &OS) : FunctionPass(ID), OS(OS) {}
-
- StringRef getPassName() const override;
- void getAnalysisUsage(AnalysisUsage &AU) const override;
-
- bool runOnFunction(Function &F) override;
- bool doFinalization(Module &M) override;
-};
-
-} // end anonymous namespace
-
INITIALIZE_PASS(GCModuleInfo, "collector-metadata",
"Create Garbage Collector Module Metadata", false, false)
@@ -84,58 +65,6 @@ void GCModuleInfo::clear() {
// -----------------------------------------------------------------------------
-char Printer::ID = 0;
-
-FunctionPass *llvm::createGCInfoPrinter(raw_ostream &OS) {
- return new Printer(OS);
-}
-
-StringRef Printer::getPassName() const {
- return "Print Garbage Collector Information";
-}
-
-void Printer::getAnalysisUsage(AnalysisUsage &AU) const {
- FunctionPass::getAnalysisUsage(AU);
- AU.setPreservesAll();
- AU.addRequired<GCModuleInfo>();
-}
-
-bool Printer::runOnFunction(Function &F) {
- if (F.hasGC())
- return false;
-
- GCFunctionInfo *FD = &getAnalysis<GCModuleInfo>().getFunctionInfo(F);
-
- OS << "GC roots for " << FD->getFunction().getName() << ":\n";
- for (GCFunctionInfo::roots_iterator RI = FD->roots_begin(),
- RE = FD->roots_end();
- RI != RE; ++RI)
- OS << "\t" << RI->Num << "\t" << RI->StackOffset << "[sp]\n";
-
- OS << "GC safe points for " << FD->getFunction().getName() << ":\n";
- for (GCFunctionInfo::iterator PI = FD->begin(), PE = FD->end(); PI != PE;
- ++PI) {
-
- OS << "\t" << PI->Label->getName() << ": " << "post-call"
- << ", live = {";
-
- ListSeparator LS(",");
- for (const GCRoot &R : make_range(FD->live_begin(PI), FD->live_end(PI)))
- OS << LS << " " << R.Num;
-
- OS << " }\n";
- }
-
- return false;
-}
-
-bool Printer::doFinalization(Module &M) {
- GCModuleInfo *GMI = getAnalysisIfAvailable<GCModuleInfo>();
- assert(GMI && "Printer didn't require GCModuleInfo?!");
- GMI->clear();
- return false;
-}
-
GCStrategy *GCModuleInfo::getGCStrategy(const StringRef Name) {
// TODO: Arguably, just doing a linear search would be faster for small N
auto NMI = GCStrategyMap.find(Name);
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp
index 1f7c949cd6031b..b82fe5fb99f98d 100644
--- a/llvm/lib/CodeGen/TargetPassConfig.cpp
+++ b/llvm/lib/CodeGen/TargetPassConfig.cpp
@@ -113,10 +113,9 @@ static cl::opt<bool> DisableMergeICmps("disable-mergeicmps",
cl::init(false), cl::Hidden);
static cl::opt<bool> PrintLSR("print-lsr-output", cl::Hidden,
cl::desc("Print LLVM IR produced by the loop-reduce pass"));
-static cl::opt<bool> PrintISelInput("print-isel-input", cl::Hidden,
- cl::desc("Print LLVM IR input to isel pass"));
-static cl::opt<bool> PrintGCInfo("print-gc", cl::Hidden,
- cl::desc("Dump garbage collector data"));
+static cl::opt<bool>
+ PrintISelInput("print-isel-input", cl::Hidden,
+ cl::desc("Print LLVM IR input to isel pass"));
static cl::opt<cl::boolOrDefault>
VerifyMachineCode("verify-machineinstrs", cl::Hidden,
cl::desc("Verify generated machine code"));
@@ -491,7 +490,6 @@ CGPassBuilderOption llvm::getCGPassBuilderOption() {
SET_BOOLEAN_OPTION(DisableSelectOptimize)
SET_BOOLEAN_OPTION(PrintLSR)
SET_BOOLEAN_OPTION(PrintISelInput)
- SET_BOOLEAN_OPTION(PrintGCInfo)
return Opt;
}
@@ -1211,10 +1209,7 @@ void TargetPassConfig::addMachinePasses() {
}
// GC
- if (addGCPasses()) {
- if (PrintGCInfo)
- addPass(createGCInfoPrinter(dbgs()));
- }
+ addGCPasses();
// Basic block placement.
if (getOptLevel() != CodeGenOptLevel::None)
More information about the llvm-commits
mailing list