@@ -433,51 +433,58 @@ void ValueStorageMap::replaceValue(SILValue oldValue, SILValue newValue) {
433
433
}
434
434
435
435
#ifndef NDEBUG
436
- void ValueStorage::dump ( ) const {
437
- llvm::dbgs () << " projectedStorageID: " << projectedStorageID << " \n " ;
438
- llvm::dbgs () << " projectedOperandNum: " << projectedOperandNum << " \n " ;
439
- llvm::dbgs () << " isDefProjection: " << isDefProjection << " \n " ;
440
- llvm::dbgs () << " isUseProjection: " << isUseProjection << " \n " ;
441
- llvm::dbgs () << " isRewritten: " << isRewritten << " \n " ;
442
- llvm::dbgs () << " initializes: " << initializes << " \n " ;
436
+ void ValueStorage::print (llvm::raw_ostream &OS ) const {
437
+ OS << " projectedStorageID: " << projectedStorageID << " \n " ;
438
+ OS << " projectedOperandNum: " << projectedOperandNum << " \n " ;
439
+ OS << " isDefProjection: " << isDefProjection << " \n " ;
440
+ OS << " isUseProjection: " << isUseProjection << " \n " ;
441
+ OS << " isRewritten: " << isRewritten << " \n " ;
442
+ OS << " initializes: " << initializes << " \n " ;
443
443
}
444
- void ValueStorageMap::ValueStoragePair::dump () const {
445
- llvm::dbgs () << " value: " ;
446
- value->dump ();
447
- llvm::dbgs () << " address: " ;
444
+ void ValueStorage::dump () const { print (llvm::dbgs ()); }
445
+ void ValueStorageMap::ValueStoragePair::print (llvm::raw_ostream &OS) const {
446
+ OS << " value: " ;
447
+ value->print (OS);
448
+ OS << " address: " ;
448
449
if (storage.storageAddress )
449
- storage.storageAddress ->dump ( );
450
+ storage.storageAddress ->print (OS );
450
451
else
451
- llvm::dbgs () << " UNKNOWN!\n " ;
452
- storage.dump ( );
452
+ OS << " UNKNOWN!\n " ;
453
+ storage.print (OS );
453
454
}
454
- void ValueStorageMap::dumpProjections (SILValue value) const {
455
+ void ValueStorageMap::ValueStoragePair::dump () const { print (llvm::dbgs ()); }
456
+ void ValueStorageMap::printProjections (SILValue value,
457
+ llvm::raw_ostream &OS) const {
455
458
for (auto *pair : getProjections (value)) {
456
- pair->dump ( );
459
+ pair->print (OS );
457
460
}
458
461
}
459
- void ValueStorageMap::dump () const {
460
- llvm::dbgs () << " ValueStorageMap:\n " ;
462
+ void ValueStorageMap::dumpProjections (SILValue value) const {
463
+ printProjections (value, llvm::dbgs ());
464
+ }
465
+ void ValueStorageMap::print (llvm::raw_ostream &OS) const {
466
+ OS << " ValueStorageMap:\n " ;
461
467
for (unsigned ordinal : indices (valueVector)) {
462
468
auto &valStoragePair = valueVector[ordinal];
463
- llvm::dbgs () << " value: " ;
464
- valStoragePair.value ->dump ( );
469
+ OS << " value: " ;
470
+ valStoragePair.value ->print (OS );
465
471
auto &storage = valStoragePair.storage ;
466
472
if (storage.isUseProjection ) {
467
- llvm::dbgs () << " use projection: " ;
473
+ OS << " use projection: " ;
468
474
if (!storage.isRewritten )
469
- valueVector[storage.projectedStorageID ].value ->dump ( );
475
+ valueVector[storage.projectedStorageID ].value ->print (OS );
470
476
} else if (storage.isDefProjection ) {
471
- llvm::dbgs () << " def projection: " ;
477
+ OS << " def projection: " ;
472
478
if (!storage.isRewritten )
473
- valueVector[storage.projectedStorageID ].value ->dump ( );
479
+ valueVector[storage.projectedStorageID ].value ->print (OS );
474
480
}
475
481
if (storage.storageAddress ) {
476
- llvm::dbgs () << " storage: " ;
477
- storage.storageAddress ->dump ( );
482
+ OS << " storage: " ;
483
+ storage.storageAddress ->print (OS );
478
484
}
479
485
}
480
486
}
487
+ void ValueStorageMap::dump () const { print (llvm::dbgs ()); }
481
488
#endif
482
489
483
490
// ===----------------------------------------------------------------------===//
@@ -1439,7 +1446,7 @@ void OpaqueStorageAllocation::allocatePhi(PhiValue phi) {
1439
1446
// The phi operand projections are computed first to give them priority. Then
1440
1447
// we determine if the phi itself can share storage with one of its users.
1441
1448
CoalescedPhi coalescedPhi;
1442
- coalescedPhi.coalesce (phi, pass.valueStorageMap );
1449
+ coalescedPhi.coalesce (phi, pass.valueStorageMap , pass. domInfo );
1443
1450
1444
1451
SmallVector<SILValue, 4 > coalescedValues;
1445
1452
coalescedValues.reserve (coalescedPhi.getCoalescedOperands ().size ());
0 commit comments