Skip to content

Commit e92e25c

Browse files
committed
[CodeGen][NPM] Do not add required passes to pipeline
1 parent 630a0ff commit e92e25c

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
@@ -187,9 +187,6 @@ template <typename DerivedT, typename TargetMachineT> class CodeGenPassBuilder {
187187
}
188188

189189
protected:
190-
template <typename PassT>
191-
using has_required_t = decltype(std::declval<PassT &>().isRequired());
192-
193190
template <typename PassT>
194191
using is_module_pass_t = decltype(std::declval<PassT &>().run(
195192
std::declval<Module &>(), std::declval<ModuleAnalysisManager &>()));
@@ -220,10 +217,7 @@ template <typename DerivedT, typename TargetMachineT> class CodeGenPassBuilder {
220217
static_assert((is_detected<is_function_pass_t, PassT>::value ||
221218
is_detected<is_module_pass_t, PassT>::value) &&
222219
"Only module pass and function pass are supported.");
223-
bool Required = false;
224-
if constexpr (is_detected<has_required_t, PassT>::value)
225-
Required = PassT::isRequired();
226-
if (!PB.runBeforeAdding(Name) && !Required)
220+
if (!PB.runBeforeAdding(Name))
227221
return;
228222

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