Skip to content

Commit 0f634cb

Browse files
committed
[CodeGen][NPM] Do not add required passes to pipeline
1 parent a09fd9c commit 0f634cb

File tree

2 files changed

+3
-7
lines changed

2 files changed

+3
-7
lines changed

llvm/include/llvm/Passes/CodeGenPassBuilder.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,6 @@ template <typename DerivedT, typename TargetMachineT> class CodeGenPassBuilder {
183183
}
184184

185185
protected:
186-
template <typename PassT>
187-
using has_required_t = decltype(std::declval<PassT &>().isRequired());
188-
189186
template <typename PassT>
190187
using is_module_pass_t = decltype(std::declval<PassT &>().run(
191188
std::declval<Module &>(), std::declval<ModuleAnalysisManager &>()));
@@ -216,10 +213,7 @@ template <typename DerivedT, typename TargetMachineT> class CodeGenPassBuilder {
216213
static_assert((is_detected<is_function_pass_t, PassT>::value ||
217214
is_detected<is_module_pass_t, PassT>::value) &&
218215
"Only module pass and function pass are supported.");
219-
bool Required = false;
220-
if constexpr (is_detected<has_required_t, PassT>::value)
221-
Required = PassT::isRequired();
222-
if (!PB.runBeforeAdding(Name) && !Required)
216+
if (!PB.runBeforeAdding(Name))
223217
return;
224218

225219
// Add Function Pass

llvm/test/tools/llc/new-pm/pipeline.mir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# RUN: llc -mtriple=x86_64-pc-linux-gnu -x mir -passes=no-op-machine-function --print-pipeline-passes -filetype=null < %s | FileCheck %s --match-full-lines
22
# RUN: llc -mtriple=x86_64-pc-linux-gnu -x mir -passes='require<machine-dom-tree>,print<machine-dom-tree>' -print-pipeline-passes < %s | FileCheck --check-prefix=ANALYSIS %s
3+
# RUN: llc -mtriple=x86_64-pc-linux-gnu -x mir -enable-new-pm -stop-before=greedy -O3 -filetype=null --print-pipeline-passes < %s | FileCheck %s --check-prefix=CHECK-REQ
34

45
# CHECK: function(machine-function(no-op-machine-function)),PrintMIRPreparePass,function(machine-function(verify,print))
56

7+
# CHECK-REQ-NOT: greedy
68
# ANALYSIS: require<machine-dom-tree>,print<machine-dom-tree>
79

810
---

0 commit comments

Comments
 (0)