@@ -442,7 +442,6 @@ class StackColoring {
442
442
void dump () const ;
443
443
void dumpIntervals () const ;
444
444
void dumpBB (MachineBasicBlock *MBB) const ;
445
- void dumpBV (const char *tag, const BitVector &BV) const ;
446
445
447
446
// / Removes all of the lifetime marker instructions from the function.
448
447
// / \returns true if any markers were removed.
@@ -526,12 +525,39 @@ void StackColoringLegacy::getAnalysisUsage(AnalysisUsage &AU) const {
526
525
}
527
526
528
527
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
529
- LLVM_DUMP_METHOD void StackColoring::dumpBV (const char *tag,
530
- const BitVector &BV) const {
531
- dbgs () << tag << " : { " ;
532
- for (unsigned I = 0 , E = BV.size (); I != E; ++I)
533
- dbgs () << BV.test (I) << " " ;
534
- dbgs () << " }\n " ;
528
+
529
+ LLVM_DUMP_METHOD void dumpBV (StringRef tag, const BitVector &BV) {
530
+ constexpr unsigned ColumnWidth = 150 ;
531
+ unsigned LineStartOffset = tag.size () + /* " : "*/ 3 ;
532
+ unsigned WidthAfterTag = ColumnWidth - LineStartOffset;
533
+ unsigned NumBitsPerColumn = WidthAfterTag / 2 ;
534
+ unsigned BitsCount = BV.size ();
535
+ for (unsigned Bits = 0 ; Bits < BitsCount; Bits += NumBitsPerColumn) {
536
+ unsigned Start = Bits;
537
+ unsigned End = std::min (Start + NumBitsPerColumn, BitsCount);
538
+
539
+ dbgs () << tag << " : " ;
540
+
541
+ for (unsigned I = Start; I < End; ++I)
542
+ dbgs () << BV.test (I) << " " ;
543
+ dbgs () << ' \n ' ;
544
+ dbgs () << tag << " : " ;
545
+ unsigned next = Start;
546
+ for (unsigned I = Start; I < End; ++I) {
547
+ if (I < next)
548
+ continue ;
549
+ if (BV.test (I)) {
550
+ int numDigits = NumDigits (I);
551
+ // Make sure number have spacing while staying aligned to the line above
552
+ next = I + 1 + numDigits / 2 ;
553
+ dbgs () << I << ' ' ;
554
+ if (numDigits % 2 == 0 )
555
+ dbgs () << ' ' ;
556
+ } else
557
+ dbgs () << " " ;
558
+ }
559
+ dbgs () << ' \n ' ;
560
+ }
535
561
}
536
562
537
563
LLVM_DUMP_METHOD void StackColoring::dumpBB (MachineBasicBlock *MBB) const {
@@ -553,8 +579,14 @@ LLVM_DUMP_METHOD void StackColoring::dump() const {
553
579
554
580
LLVM_DUMP_METHOD void StackColoring::dumpIntervals () const {
555
581
for (unsigned I = 0 , E = Intervals.size (); I != E; ++I) {
556
- dbgs () << " Interval[" << I << " ]:\n " ;
557
- Intervals[I]->dump ();
582
+ dbgs () << " Interval[" << I << " ]:" ;
583
+ if (MFI->getObjectAllocation (I))
584
+ dbgs () << *MFI->getObjectAllocation (I);
585
+ dbgs () << ' \n ' << *Intervals[I] << ' \n ' ;
586
+ dbgs () << " LiveStarts:" ;
587
+ for (SlotIndex SIdx : LiveStarts[I])
588
+ dbgs () << ' ' << SIdx;
589
+ dbgs () << ' \n ' ;
558
590
}
559
591
}
560
592
#endif
0 commit comments