@@ -141,6 +141,8 @@ class PartitionOp {
141141
142142 PartitionOpKind getKind () const { return OpKind; }
143143
144+ ArrayRef<Element> getOpArgs () const { return OpArgs; }
145+
144146 SILInstruction *getSourceInst (bool assertNonNull = false ) const {
145147 assert (!assertNonNull ||
146148 sourceInst && " PartitionOps should be assigned SILInstruction"
@@ -152,38 +154,24 @@ class PartitionOp {
152154 return sourceExpr;
153155 }
154156
155- void dump () const LLVM_ATTRIBUTE_USED {
156- raw_ostream &os = llvm::errs ();
157+ SWIFT_DEBUG_DUMP { print (llvm::dbgs ()); }
158+
159+ void print (llvm::raw_ostream &os) const {
157160 switch (OpKind) {
158161 case PartitionOpKind::Assign:
159- os.changeColor (llvm::raw_ostream::CYAN, true );
160- os << " assign" ;
161- os.resetColor ();
162- os << " %%" << OpArgs[0 ] << " = %%" << OpArgs[1 ] << " \n " ;
162+ os << " assign %%" << OpArgs[0 ] << " = %%" << OpArgs[1 ] << " \n " ;
163163 break ;
164164 case PartitionOpKind::AssignFresh:
165- os.changeColor (llvm::raw_ostream::GREEN, true );
166- os << " assign_fresh" ;
167- os.resetColor ();
168- os << " %%" << OpArgs[0 ] << " \n " ;
165+ os << " assign_fresh %%" << OpArgs[0 ] << " \n " ;
169166 break ;
170167 case PartitionOpKind::Consume:
171- os.changeColor (llvm::raw_ostream::RED, true );
172- os << " consume" ;
173- os.resetColor ();
174- os << " %%" << OpArgs[0 ] << " \n " ;
168+ os << " consume %%" << OpArgs[0 ] << " \n " ;
175169 break ;
176170 case PartitionOpKind::Merge:
177- os.changeColor (llvm::raw_ostream::BLUE, true );
178- os << " merge" ;
179- os.resetColor ();
180- os << " %%" << OpArgs[0 ] << " with %%" << OpArgs[1 ] << " \n " ;
171+ os << " merge %%" << OpArgs[0 ] << " with %%" << OpArgs[1 ] << " \n " ;
181172 break ;
182173 case PartitionOpKind::Require:
183- os.changeColor (llvm::raw_ostream::YELLOW, true );
184- os << " require" ;
185- os.resetColor ();
186- os << " %%" << OpArgs[0 ] << " \n " ;
174+ os << " require %%" << OpArgs[0 ] << " \n " ;
187175 break ;
188176 }
189177 }
@@ -236,7 +224,7 @@ class Partition {
236224
237225 auto fail = [&](Element i, int type) {
238226 llvm::dbgs () << " FAIL(i=" << i << " ; type=" << type << " ): " ;
239- dump ( );
227+ print ( llvm::dbgs () );
240228 return false ;
241229 };
242230
@@ -382,14 +370,10 @@ class Partition {
382370 fst_reduced.merge (i, Element (snd_label));
383371 }
384372
385- LLVM_DEBUG (
386- llvm::dbgs () << " JOIN PEFORMED: \n FST: " ;
387- fst.dump ();
388- llvm::dbgs () << " SND: " ;
389- snd.dump ();
390- llvm::dbgs () << " RESULT: " ;
391- fst_reduced.dump ();
392- );
373+ LLVM_DEBUG (llvm::dbgs () << " JOIN PEFORMED: \n FST: " ;
374+ fst.print (llvm::dbgs ()); llvm::dbgs () << " SND: " ;
375+ snd.print (llvm::dbgs ()); llvm::dbgs () << " RESULT: " ;
376+ fst_reduced.print (llvm::dbgs ()););
393377
394378 assert (fst_reduced.is_canonical_correct ());
395379
@@ -410,7 +394,7 @@ class Partition {
410394 llvm::function_ref<void (const PartitionOp &, Element)> handleFailure =
411395 [](const PartitionOp &, Element) {},
412396
413- std::vector <Element> nonconsumables = {},
397+ ArrayRef <Element> nonconsumables = {},
414398
415399 llvm::function_ref<void (const PartitionOp &, Element)>
416400 handleConsumeNonConsumable = [](const PartitionOp &, Element) {}) {
@@ -531,24 +515,27 @@ class Partition {
531515 llvm::dbgs () << " }\n " ;
532516 }
533517
534- void dump () const LLVM_ATTRIBUTE_USED {
518+ SWIFT_DEBUG_DUMP { print (llvm::dbgs ()); }
519+
520+ void print (llvm::raw_ostream &os) const {
535521 std::map<Region, std::vector<Element>> buckets;
536522
537523 for (auto [i, label] : labels)
538524 buckets[label].push_back (i);
539525
540- llvm::dbgs () << " [" ;
526+ os << " [" ;
541527 for (auto [label, indices] : buckets) {
542- llvm::dbgs () << (label.isConsumed () ? " {" : " (" );
528+ os << (label.isConsumed () ? " {" : " (" );
543529 int j = 0 ;
544530 for (Element i : indices) {
545- llvm::dbgs () << (j++ ? " " : " " ) << i;
531+ os << (j++ ? " " : " " ) << i;
546532 }
547- llvm::dbgs () << (label.isConsumed () ? " }" : " )" );
533+ os << (label.isConsumed () ? " }" : " )" );
548534 }
549- llvm::dbgs () << " ]\n " ;
535+ os << " ]\n " ;
550536 }
551537};
552- }
538+
539+ } // namespace swift
553540
554541#endif // SWIFT_PARTITIONUTILS_H
0 commit comments