Skip to content

Commit b753440

Browse files
committed
[CodeGen][NPM] Do not add required passes to pipeline
1 parent 8822006 commit b753440

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
@@ -182,9 +182,6 @@ template <typename DerivedT, typename TargetMachineT> class CodeGenPassBuilder {
182182
}
183183

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

224218
// 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)