@@ -58,6 +58,11 @@ class PassManager : public ParentPass {
58
58
Passes.push_back (std::move (Pass));
59
59
}
60
60
61
+ static constexpr const char EndToken = ' \0 ' ;
62
+ static constexpr const char BeginArgsToken = ' <' ;
63
+ static constexpr const char EndArgsToken = ' >' ;
64
+ static constexpr const char PassDelimToken = ' ,' ;
65
+
61
66
// / Parses \p Pipeline as a comma-separated sequence of pass names and sets
62
67
// / the pass pipeline, using \p CreatePass to instantiate passes by name.
63
68
// /
@@ -74,11 +79,6 @@ class PassManager : public ParentPass {
74
79
// / An empty args string is treated the same as no args, so "pass" and
75
80
// / "pass<>" are equivalent.
76
81
void setPassPipeline (StringRef Pipeline, CreatePassFunc CreatePass) {
77
- static constexpr const char EndToken = ' \0 ' ;
78
- static constexpr const char BeginArgsToken = ' <' ;
79
- static constexpr const char EndArgsToken = ' >' ;
80
- static constexpr const char PassDelimToken = ' ,' ;
81
-
82
82
assert (Passes.empty () &&
83
83
" setPassPipeline called on a non-empty sandboxir::PassManager" );
84
84
@@ -183,10 +183,10 @@ class PassManager : public ParentPass {
183
183
#ifndef NDEBUG
184
184
void print (raw_ostream &OS) const override {
185
185
OS << this ->getName ();
186
- OS << " ( " ;
187
- // TODO: This should call Pass->print(OS) because Pass may be a PM.
188
- interleave (Passes, OS, [&OS](auto &Pass) { OS << Pass->getName ( ); }, " , " );
189
- OS << " ) " ;
186
+ OS << BeginArgsToken ;
187
+ std::string Delim ( 1 , PassDelimToken);
188
+ interleave (Passes, OS, [&OS](auto &Pass) { Pass->print (OS ); }, Delim );
189
+ OS << EndArgsToken ;
190
190
}
191
191
LLVM_DUMP_METHOD void dump () const override {
192
192
print (dbgs ());
0 commit comments