File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed
include/swift/SILOptimizer/Utils Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -49,6 +49,8 @@ struct OpenedArchetypeInfo {
49
49
assert (!OpenedArchetype || (OpenedArchetypeValue && ExistentialValue));
50
50
return OpenedArchetype;
51
51
}
52
+
53
+ void dump () const ;
52
54
};
53
55
54
56
// / Record conformance and concrete type info derived from an init_existential
@@ -102,6 +104,8 @@ struct ConcreteExistentialInfo {
102
104
CanType selfTy = P->getSelfInterfaceType ()->getCanonicalType ();
103
105
return ExistentialSubs.lookupConformance (selfTy, P);
104
106
}
107
+
108
+ void dump () const ;
105
109
106
110
private:
107
111
void initializeSubstitutionMap (
@@ -131,6 +135,8 @@ struct ConcreteOpenedExistentialInfo {
131
135
assert (CEI->isValid ());
132
136
return true ;
133
137
}
138
+
139
+ void dump () const ;
134
140
};
135
141
136
142
} // end namespace swift
Original file line number Diff line number Diff line change @@ -433,3 +433,40 @@ ConcreteOpenedExistentialInfo::ConcreteOpenedExistentialInfo(
433
433
}
434
434
CEI->isConcreteValueCopied |= OAI.isOpenedValueCopied ;
435
435
}
436
+
437
+ void LLVM_ATTRIBUTE_USED OpenedArchetypeInfo::dump () const {
438
+ if (!isValid ()) {
439
+ llvm::dbgs () << " invalid OpenedArchetypeInfo\n " ;
440
+ return ;
441
+ }
442
+ llvm::dbgs () << " OpendArchetype: " ;
443
+ OpenedArchetype->dump (llvm::dbgs ());
444
+ llvm::dbgs () << " OpendArchetypeValue: " ;
445
+ OpenedArchetypeValue->dump ();
446
+ llvm::dbgs () << (isOpenedValueCopied ? " copied " : " " ) << " ExistentialValue: " ;
447
+ ExistentialValue->dump ();
448
+ }
449
+
450
+ void LLVM_ATTRIBUTE_USED ConcreteExistentialInfo::dump () const {
451
+ llvm::dbgs () << " ExistentialType: " ;
452
+ ExistentialType->dump (llvm::dbgs ());
453
+ llvm::dbgs () << " ConcreteType: " ;
454
+ ConcreteType->dump (llvm::dbgs ());
455
+ llvm::dbgs () << (isConcreteValueCopied ? " copied " : " " ) << " ConcreteValue: " ;
456
+ ConcreteValue->dump ();
457
+ if (ConcreteTypeDef) {
458
+ llvm::dbgs () << " ConcreteTypeDef: " ;
459
+ ConcreteTypeDef->dump ();
460
+ }
461
+ ExistentialSubs.dump (llvm::dbgs ());
462
+ llvm::dbgs () << ' \n ' ;
463
+ }
464
+
465
+ void LLVM_ATTRIBUTE_USED ConcreteOpenedExistentialInfo::dump () const {
466
+ OAI.dump ();
467
+ if (CEI) {
468
+ CEI->dump ();
469
+ } else {
470
+ llvm::dbgs () << " no ConcreteExistentialInfo\n " ;
471
+ }
472
+ }
You can’t perform that action at this time.
0 commit comments