@@ -486,7 +486,8 @@ class PatternMatchEmission {
486
486
const FailureHandler &failure);
487
487
void emitEnumElementDispatchWithOwnership (
488
488
ArrayRef<RowToSpecialize> rows, ConsumableManagedValue src,
489
- const SpecializationHandler &handleSpec, const FailureHandler &failure);
489
+ const SpecializationHandler &handleSpec, const FailureHandler &failure,
490
+ ProfileCounter defaultCaseCount);
490
491
void emitEnumElementDispatch (ArrayRef<RowToSpecialize> rows,
491
492
ConsumableManagedValue src,
492
493
const SpecializationHandler &handleSpec,
@@ -1795,8 +1796,8 @@ static void generateEnumCaseBlocks(
1795
1796
// / OptionalSomePattern.
1796
1797
void PatternMatchEmission::emitEnumElementDispatchWithOwnership (
1797
1798
ArrayRef<RowToSpecialize> rows, ConsumableManagedValue src,
1798
- const SpecializationHandler &handleCase,
1799
- const FailureHandler &outerFailure ) {
1799
+ const SpecializationHandler &handleCase, const FailureHandler &outerFailure,
1800
+ ProfileCounter defaultCastCount ) {
1800
1801
assert (src.getFinalConsumption () != CastConsumptionKind::TakeOnSuccess &&
1801
1802
" SIL ownership does not support TakeOnSuccess" );
1802
1803
@@ -1821,7 +1822,9 @@ void PatternMatchEmission::emitEnumElementDispatchWithOwnership(
1821
1822
SILValue srcValue = src.getFinalManagedValue ().copy (SGF, loc).forward (SGF);
1822
1823
// FIXME: Pass caseCounts in here as well, as it is in
1823
1824
// emitEnumElementDispatch.
1824
- SGF.B .createSwitchEnum (loc, srcValue, defaultBB, caseBBs);
1825
+ ArrayRef<ProfileCounter> caseCountsArrayRef = caseCounts;
1826
+ SGF.B .createSwitchEnum (loc, srcValue, defaultBB, caseBBs, caseCountsArrayRef,
1827
+ defaultCastCount);
1825
1828
1826
1829
// Okay, now emit all the cases.
1827
1830
for (unsigned i = 0 , e = caseInfos.size (); i != e; ++i) {
@@ -1940,7 +1943,7 @@ void PatternMatchEmission::emitEnumElementDispatch(
1940
1943
// use the dispatch code path.
1941
1944
if (SGF.getOptions ().EnableSILOwnership && src.getType ().isObject ()) {
1942
1945
return emitEnumElementDispatchWithOwnership (rows, src, handleCase,
1943
- outerFailure);
1946
+ outerFailure, defaultCaseCount );
1944
1947
}
1945
1948
1946
1949
CanType sourceType = rows[0 ].Pattern ->getType ()->getCanonicalType ();
0 commit comments