[llvm] [CodeGen][NewPM] Add necessary codegen options (PR #70904)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 1 00:24:57 PDT 2023
https://github.com/paperchalice created https://github.com/llvm/llvm-project/pull/70904
Theses options are used by `TargetPassConfig` to build CodeGen pass pipeline, add them to `CGPassBuilderOption` so `CodeGenPassBuilder` can use them. Currently not all options are added, but it is enough to build a prototype of `CodeGenPassBuilder`. Part of #69879.
>From 0748ec987a1c4c83bd7c76c90dc4e7ecacff5387 Mon Sep 17 00:00:00 2001
From: liujunchang <lgamma at 163.com>
Date: Wed, 1 Nov 2023 09:34:56 +0800
Subject: [PATCH] [CodeGen][NewPM] Add necessary codegen options
Theses options are used by TargetPassConfig
to build codegen pass pipeline,
add them to CGPassBuilderOption
so CodeGenPassBuilder can use them.
---
llvm/include/llvm/Target/CGPassBuilderOption.h | 11 +++++++++++
llvm/lib/CodeGen/TargetPassConfig.cpp | 10 ++++++++++
2 files changed, 21 insertions(+)
diff --git a/llvm/include/llvm/Target/CGPassBuilderOption.h b/llvm/include/llvm/Target/CGPassBuilderOption.h
index bf297ae498b2de5..2c98bea4b60e048 100644
--- a/llvm/include/llvm/Target/CGPassBuilderOption.h
+++ b/llvm/include/llvm/Target/CGPassBuilderOption.h
@@ -32,8 +32,10 @@ struct CGPassBuilderOption {
bool DisableVerify = false;
bool EnableImplicitNullChecks = false;
bool EnableBlockPlacementStats = false;
+ bool EnableMachineFunctionSplitter = false;
bool MISchedPostRA = false;
bool EarlyLiveIntervals = false;
+ bool GCEmptyBlocks = false;
bool DisableLSR = false;
bool DisableCGP = false;
@@ -42,6 +44,11 @@ struct CGPassBuilderOption {
bool DisablePartialLibcallInlining = false;
bool DisableConstantHoisting = false;
bool DisableSelectOptimize = true;
+ bool DisableAtExitBasedGlobalDtorLowering = false;
+ bool DisableExpandReductions = false;
+ bool DisableRAFSProfileLoader = false;
+ bool DisableCFIFixup = false;
+ bool PrintAfterISel = false;
bool PrintISelInput = false;
bool PrintGCInfo = false;
bool RequiresCodeGenSCCOrder = false;
@@ -49,10 +56,14 @@ struct CGPassBuilderOption {
RunOutliner EnableMachineOutliner = RunOutliner::TargetDefault;
RegAllocType RegAlloc = RegAllocType::Default;
std::optional<GlobalISelAbortMode> EnableGlobalISelAbort;
+ std::string FSProfileFile;
+ std::string FSRemappingFile;
std::optional<bool> VerifyMachineCode;
std::optional<bool> EnableFastISelOption;
std::optional<bool> EnableGlobalISelOption;
+ std::optional<bool> DebugifyAndStripAll;
+ std::optional<bool> DebugifyCheckAndStripAll;
};
CGPassBuilderOption getCGPassBuilderOption();
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp
index e6ecbc9b03f7149..910125c9ec65e09 100644
--- a/llvm/lib/CodeGen/TargetPassConfig.cpp
+++ b/llvm/lib/CodeGen/TargetPassConfig.cpp
@@ -475,6 +475,11 @@ CGPassBuilderOption llvm::getCGPassBuilderOption() {
SET_OPTION(EnableIPRA)
SET_OPTION(OptimizeRegAlloc)
SET_OPTION(VerifyMachineCode)
+ SET_OPTION(DisableAtExitBasedGlobalDtorLowering)
+ SET_OPTION(DisableExpandReductions)
+ SET_OPTION(PrintAfterISel)
+ SET_OPTION(FSProfileFile)
+ SET_OPTION(GCEmptyBlocks)
#define SET_BOOLEAN_OPTION(Option) Opt.Option = Option;
@@ -492,6 +497,11 @@ CGPassBuilderOption llvm::getCGPassBuilderOption() {
SET_BOOLEAN_OPTION(PrintLSR)
SET_BOOLEAN_OPTION(PrintISelInput)
SET_BOOLEAN_OPTION(PrintGCInfo)
+ SET_BOOLEAN_OPTION(DebugifyAndStripAll)
+ SET_BOOLEAN_OPTION(DebugifyCheckAndStripAll)
+ SET_BOOLEAN_OPTION(DisableRAFSProfileLoader)
+ SET_BOOLEAN_OPTION(DisableCFIFixup)
+ SET_BOOLEAN_OPTION(EnableMachineFunctionSplitter)
return Opt;
}
More information about the llvm-commits
mailing list