From 0c36e44f2e665fbadebe1e499e3c07a99a7d47df Mon Sep 17 00:00:00 2001 From: Dario Rexin Date: Fri, 13 Oct 2023 10:22:02 -0700 Subject: [PATCH] [Runtime] Cleanup function names in BytecodeLayouts.cpp --- stdlib/public/runtime/BytecodeLayouts.cpp | 469 ++++++++++------------ 1 file changed, 204 insertions(+), 265 deletions(-) diff --git a/stdlib/public/runtime/BytecodeLayouts.cpp b/stdlib/public/runtime/BytecodeLayouts.cpp index 047e8189700ca..bb39029e1243a 100644 --- a/stdlib/public/runtime/BytecodeLayouts.cpp +++ b/stdlib/public/runtime/BytecodeLayouts.cpp @@ -111,82 +111,70 @@ static void handleEnd(const Metadata *metadata, return; } -static void errorDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void errorDestroy(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { SwiftError *error = *(SwiftError**)(addr + addrOffset); addrOffset += sizeof(SwiftError*); swift_errorRelease(error); } -static void nativeStrongDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void nativeStrongDestroy(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { HeapObject *object = (HeapObject*)((*(uintptr_t *)(addr + addrOffset)) & ~_swift_abi_SwiftSpareBitsMask); addrOffset += sizeof(HeapObject*); swift_release(object); } -static void unownedDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void unownedDestroy(const Metadata *metadata, + LayoutStringReader1 &reader, uintptr_t &addrOffset, + uint8_t *addr) { HeapObject *object = (HeapObject*)((*(uintptr_t *)(addr + addrOffset)) & ~_swift_abi_SwiftSpareBitsMask); addrOffset += sizeof(HeapObject*); swift_unownedRelease(object); } -static void weakDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void weakDestroy(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { auto *object = (WeakReference *)(addr + addrOffset); addrOffset += sizeof(WeakReference); swift_weakDestroy(object); } -static void unknownDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void unknownDestroy(const Metadata *metadata, + LayoutStringReader1 &reader, uintptr_t &addrOffset, + uint8_t *addr) { void *object = *(void**)(addr + addrOffset); addrOffset += sizeof(void*); swift_unknownObjectRelease(object); } -static void unknownUnownedDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void unknownUnownedDestroy(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { UnownedReference *object = (UnownedReference*)(addr + addrOffset); addrOffset += sizeof(UnownedReference); swift_unknownObjectUnownedDestroy(object); } -static void unknownWeakDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void unknownWeakDestroy(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { auto *object = (WeakReference *)(addr + addrOffset); addrOffset += sizeof(WeakReference); swift_unknownObjectWeakDestroy(object); } -static void bridgeDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void bridgeDestroy(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { auto *object = *(void **)(addr + addrOffset); addrOffset += sizeof(void*); swift_bridgeObjectRelease(object); } -static void singlePayloadEnumSimpleBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void singlePayloadEnumSimple(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { reader.modify([&](LayoutStringReader1 &reader) { uint64_t byteCountsAndOffset; size_t payloadSize; @@ -228,10 +216,9 @@ static void singlePayloadEnumSimpleBranchless(const Metadata *metadata, typedef unsigned (*GetEnumTagFn)(const uint8_t *); -static void singlePayloadEnumFNBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void singlePayloadEnumFN(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { reader.modify([&](LayoutStringReader1 &reader) { GetEnumTagFn getEnumTag = readRelativeFunctionPointer(reader); @@ -249,10 +236,9 @@ static void singlePayloadEnumFNBranchless(const Metadata *metadata, }); } -static void singlePayloadEnumFNResolvedBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void singlePayloadEnumFNResolved(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { reader.modify([&](LayoutStringReader1 &reader) { GetEnumTagFn getEnumTag; size_t refCountBytes; @@ -268,10 +254,9 @@ static void singlePayloadEnumFNResolvedBranchless(const Metadata *metadata, }); } -static void singlePayloadEnumGenericBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void singlePayloadEnumGeneric(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { reader.modify([&](LayoutStringReader1 &reader) { auto tagBytesAndOffset = reader.readBytes(); auto payloadSize = reader.readBytes(); @@ -307,11 +292,10 @@ static void singlePayloadEnumGenericBranchless(const Metadata *metadata, }); } -template -static void multiPayloadEnumFNBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +template +static void multiPayloadEnumFN(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { size_t numPayloads; size_t refCountBytes; size_t enumSize; @@ -339,11 +323,10 @@ static void multiPayloadEnumFNBranchless(const Metadata *metadata, } } -template -static void multiPayloadEnumFNResolvedBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +template +static void multiPayloadEnumFNResolved(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { size_t numPayloads; size_t refCountBytes; size_t enumSize; @@ -371,11 +354,10 @@ static void multiPayloadEnumFNResolvedBranchless(const Metadata *metadata, } } -template -static void multiPayloadEnumGenericBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +template +static void multiPayloadEnumGeneric(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { size_t tagBytes; size_t numPayloads; size_t refCountBytes; @@ -405,11 +387,10 @@ static void multiPayloadEnumGenericBranchless(const Metadata *metadata, } } -static void singlePayloadEnumSimpleBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void singlePayloadEnumSimple(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { reader.modify([&](LayoutStringReader1 &reader) { uint64_t byteCountsAndOffset; size_t payloadSize; @@ -450,11 +431,10 @@ static void singlePayloadEnumSimpleBranchless(const Metadata *metadata, }); } -static void singlePayloadEnumFNBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void singlePayloadEnumFN(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { reader.modify([&](LayoutStringReader1 &reader) { GetEnumTagFn getEnumTag = readRelativeFunctionPointer(reader); @@ -473,11 +453,10 @@ static void singlePayloadEnumFNBranchless(const Metadata *metadata, }); } -static void singlePayloadEnumFNResolvedBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void singlePayloadEnumFNResolved(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { reader.modify([&](LayoutStringReader1 &reader) { GetEnumTagFn getEnumTag; size_t refCountBytes; @@ -494,11 +473,10 @@ static void singlePayloadEnumFNResolvedBranchless(const Metadata *metadata, }); } -static void singlePayloadEnumGenericBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void singlePayloadEnumGeneric(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { reader.modify([&](LayoutStringReader1 &reader) { auto tagBytesAndOffset = reader.readBytes(); auto payloadSize = reader.readBytes(); @@ -535,12 +513,10 @@ static void singlePayloadEnumGenericBranchless(const Metadata *metadata, }); } -template -static void multiPayloadEnumFNBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +template +static void +multiPayloadEnumFN(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, uint8_t *src) { size_t numPayloads; size_t refCountBytes; size_t enumSize; @@ -572,12 +548,11 @@ static void multiPayloadEnumFNBranchless(const Metadata *metadata, } } -template -static void multiPayloadEnumFNResolvedBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +template +static void multiPayloadEnumFNResolved(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { size_t numPayloads; size_t refCountBytes; size_t enumSize; @@ -609,12 +584,10 @@ static void multiPayloadEnumFNResolvedBranchless(const Metadata *metadata, } } -template -static void multiPayloadEnumGenericBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +template +static void +multiPayloadEnumGeneric(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, uint8_t *src) { size_t tagBytes; size_t numPayloads; size_t refCountBytes; @@ -649,19 +622,16 @@ static void multiPayloadEnumGenericBranchless(const Metadata *metadata, } #if SWIFT_OBJC_INTEROP -static void blockDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void blockDestroy(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { void* object = (void *)(addr + addrOffset); addrOffset += sizeof(void*); _Block_release(object); } -static void objcStrongDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void objcStrongDestroy(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr) { uintptr_t object = *(uintptr_t *)(addr + addrOffset); addrOffset += sizeof(objc_object*); if (object & _swift_abi_ObjCReservedBitsMask) @@ -672,20 +642,18 @@ static void objcStrongDestroyBranchless(const Metadata *metadata, } #endif -static void metatypeDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void metatypeDestroy(const Metadata *metadata, + LayoutStringReader1 &reader, uintptr_t &addrOffset, + uint8_t *addr) { auto *type = reader.readBytes(); auto *object = (OpaqueValue *)(addr + addrOffset); addrOffset += type->vw_size(); type->vw_destroy(object); } -static void existentialDestroyBranchless(const Metadata *metadata, +static void existentialDestroy(const Metadata *metadata, LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { + uintptr_t &addrOffset, uint8_t *addr) { OpaqueValue *object = (OpaqueValue *)(addr + addrOffset); auto* type = getExistentialTypeMetadata(object); addrOffset += sizeof(uintptr_t) * NumWords_ValueBuffer; @@ -696,50 +664,47 @@ static void existentialDestroyBranchless(const Metadata *metadata, } } -static void resilientDestroyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr) { +static void resilientDestroy(const Metadata *metadata, + LayoutStringReader1 &reader, uintptr_t &addrOffset, + uint8_t *addr) { auto *type = getResilientTypeMetadata(metadata, reader); auto *object = (OpaqueValue *)(addr + addrOffset); addrOffset += type->vw_size(); type->vw_destroy(object); } -typedef void (*DestrFnBranchless)(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *addr); +typedef void (*DestrFn)(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *addr); -const DestrFnBranchless destroyTableBranchless[] = { - &handleEnd, - &errorDestroyBranchless, - &nativeStrongDestroyBranchless, - &unownedDestroyBranchless, - &weakDestroyBranchless, - &unknownDestroyBranchless, - &unknownUnownedDestroyBranchless, - &unknownWeakDestroyBranchless, - &bridgeDestroyBranchless, +const DestrFn destroyTable[] = { + &handleEnd, + &errorDestroy, + &nativeStrongDestroy, + &unownedDestroy, + &weakDestroy, + &unknownDestroy, + &unknownUnownedDestroy, + &unknownWeakDestroy, + &bridgeDestroy, #if SWIFT_OBJC_INTEROP - &blockDestroyBranchless, - &objcStrongDestroyBranchless, + &blockDestroy, + &objcStrongDestroy, #else - nullptr, - nullptr, + nullptr, + nullptr, #endif - nullptr, // Custom - &metatypeDestroyBranchless, - nullptr, // Generic - &existentialDestroyBranchless, - &resilientDestroyBranchless, - &singlePayloadEnumSimpleBranchless, - &singlePayloadEnumFNBranchless, - &singlePayloadEnumFNResolvedBranchless, - &singlePayloadEnumGenericBranchless, - &multiPayloadEnumFNBranchless, - &multiPayloadEnumFNResolvedBranchless, - &multiPayloadEnumGenericBranchless, + nullptr, // Custom + &metatypeDestroy, + nullptr, // Generic + &existentialDestroy, + &resilientDestroy, + &singlePayloadEnumSimple, + &singlePayloadEnumFN, + &singlePayloadEnumFNResolved, + &singlePayloadEnumGeneric, + &multiPayloadEnumFN, + &multiPayloadEnumFNResolved, + &multiPayloadEnumGeneric, }; static void handleRefCountsDestroy(const Metadata *metadata, @@ -754,7 +719,7 @@ static void handleRefCountsDestroy(const Metadata *metadata, return; } - destroyTableBranchless[tag](metadata, reader, addrOffset, addr); + destroyTable[tag](metadata, reader, addrOffset, addr); } } @@ -781,11 +746,8 @@ static void handleRefCountsInitWithCopy(const Metadata *metadata, uint8_t *dest, uint8_t *src); -static void errorRetainBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void errorRetain(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, uint8_t *src) { uintptr_t _addrOffset = addrOffset; SwiftError *object = *(SwiftError **)(src + _addrOffset); memcpy(dest + addrOffset, &object, sizeof(SwiftError*)); @@ -793,11 +755,10 @@ static void errorRetainBranchless(const Metadata *metadata, swift_errorRetain(object); } -static void nativeStrongRetainBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void nativeStrongRetain(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { uintptr_t _addrOffset = addrOffset; uintptr_t object = *(uintptr_t *)(src + _addrOffset); memcpy(dest + _addrOffset, &object, sizeof(HeapObject*)); @@ -806,11 +767,8 @@ static void nativeStrongRetainBranchless(const Metadata *metadata, swift_retain((HeapObject *)object); } -static void unownedRetainBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void unownedRetain(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, uint8_t *src) { uintptr_t _addrOffset = addrOffset; uintptr_t object = *(uintptr_t *)(src + _addrOffset); memcpy(dest + _addrOffset, &object, sizeof(HeapObject*)); @@ -819,11 +777,8 @@ static void unownedRetainBranchless(const Metadata *metadata, swift_unownedRetain((HeapObject *)object); } -static void weakCopyInitBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void weakCopyInit(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, uint8_t *src) { uintptr_t _addrOffset = addrOffset; auto *destObject = (WeakReference *)(dest + _addrOffset); auto *srcObject = (WeakReference *)(src + _addrOffset); @@ -831,11 +786,8 @@ static void weakCopyInitBranchless(const Metadata *metadata, swift_weakCopyInit(destObject, srcObject); } -static void unknownRetainBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void unknownRetain(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, uint8_t *src) { uintptr_t _addrOffset = addrOffset; void *object = *(void **)(src + _addrOffset); memcpy(dest + _addrOffset, &object, sizeof(void*)); @@ -843,11 +795,10 @@ static void unknownRetainBranchless(const Metadata *metadata, swift_unknownObjectRetain(object); } -static void unknownUnownedCopyInitBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void unknownUnownedCopyInit(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { uintptr_t _addrOffset = addrOffset; UnownedReference *objectDest = (UnownedReference*)(dest + _addrOffset); UnownedReference *objectSrc = (UnownedReference*)(src + _addrOffset); @@ -855,11 +806,10 @@ static void unknownUnownedCopyInitBranchless(const Metadata *metadata, swift_unknownObjectUnownedCopyInit(objectDest, objectSrc); } -static void unknownWeakCopyInitBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void unknownWeakCopyInit(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { uintptr_t _addrOffset = addrOffset; auto *destObject = (WeakReference *)(dest + _addrOffset); auto *srcObject = (WeakReference *)(src + _addrOffset); @@ -867,11 +817,8 @@ static void unknownWeakCopyInitBranchless(const Metadata *metadata, swift_unknownObjectWeakCopyInit(destObject, srcObject); } -static void bridgeRetainBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void bridgeRetain(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, uint8_t *src) { uintptr_t _addrOffset = addrOffset; void *object = *(void **)(src + _addrOffset); memcpy(dest + _addrOffset, &object, sizeof(void*)); @@ -880,22 +827,17 @@ static void bridgeRetainBranchless(const Metadata *metadata, } #if SWIFT_OBJC_INTEROP -static void blockCopyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void blockCopy(const Metadata *metadata, LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, uint8_t *src) { uintptr_t _addrOffset = addrOffset; auto *copy = _Block_copy(*(void**)(src + _addrOffset)); memcpy(dest + _addrOffset, ©, sizeof(void*)); addrOffset = _addrOffset + sizeof(void*); } -static void objcStrongRetainBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void objcStrongRetain(const Metadata *metadata, + LayoutStringReader1 &reader, uintptr_t &addrOffset, + uint8_t *dest, uint8_t *src) { uintptr_t _addrOffset = addrOffset; uintptr_t object = *(uintptr_t *)(src + _addrOffset); memcpy(dest + _addrOffset, &object, sizeof(objc_object *)); @@ -907,11 +849,10 @@ static void objcStrongRetainBranchless(const Metadata *metadata, } #endif -static void metatypeInitWithCopyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void metatypeInitWithCopy(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { uintptr_t _addrOffset = addrOffset; auto *type = reader.readBytes(); auto *destObject = (OpaqueValue *)(dest + _addrOffset); @@ -920,11 +861,10 @@ static void metatypeInitWithCopyBranchless(const Metadata *metadata, type->vw_initializeWithCopy(destObject, srcObject); } -static void existentialInitWithCopyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void existentialInitWithCopy(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { uintptr_t _addrOffset = addrOffset; auto *type = getExistentialTypeMetadata((OpaqueValue*)(src + _addrOffset)); auto *destObject = (ValueBuffer *)(dest + _addrOffset); @@ -933,11 +873,10 @@ static void existentialInitWithCopyBranchless(const Metadata *metadata, type->vw_initializeBufferWithCopyOfBuffer(destObject, srcObject); } -static void resilientInitWithCopyBranchless(const Metadata *metadata, - LayoutStringReader1 &reader, - uintptr_t &addrOffset, - uint8_t *dest, - uint8_t *src) { +static void resilientInitWithCopy(const Metadata *metadata, + LayoutStringReader1 &reader, + uintptr_t &addrOffset, uint8_t *dest, + uint8_t *src) { uintptr_t _addrOffset = addrOffset; auto *type = getResilientTypeMetadata(metadata, reader); auto *destObject = (OpaqueValue *)(dest + _addrOffset); @@ -953,34 +892,34 @@ typedef void (*InitFn)(const Metadata *metadata, uint8_t *src); static const InitFn initWithCopyTable[] = { - &handleEnd, - &errorRetainBranchless, - &nativeStrongRetainBranchless, - &unownedRetainBranchless, - &weakCopyInitBranchless, - &unknownRetainBranchless, - &unknownUnownedCopyInitBranchless, - &unknownWeakCopyInitBranchless, - &bridgeRetainBranchless, + &handleEnd, + &errorRetain, + &nativeStrongRetain, + &unownedRetain, + &weakCopyInit, + &unknownRetain, + &unknownUnownedCopyInit, + &unknownWeakCopyInit, + &bridgeRetain, #if SWIFT_OBJC_INTEROP - &blockCopyBranchless, - &objcStrongRetainBranchless, + &blockCopy, + &objcStrongRetain, #else - nullptr, - nullptr, + nullptr, + nullptr, #endif - nullptr, // Custom - &metatypeInitWithCopyBranchless, - nullptr, // Generic - &existentialInitWithCopyBranchless, - &resilientInitWithCopyBranchless, - &singlePayloadEnumSimpleBranchless, - &singlePayloadEnumFNBranchless, - &singlePayloadEnumFNResolvedBranchless, - &singlePayloadEnumGenericBranchless, - &multiPayloadEnumFNBranchless, - &multiPayloadEnumFNResolvedBranchless, - &multiPayloadEnumGenericBranchless, + nullptr, // Custom + &metatypeInitWithCopy, + nullptr, // Generic + &existentialInitWithCopy, + &resilientInitWithCopy, + &singlePayloadEnumSimple, + &singlePayloadEnumFN, + &singlePayloadEnumFNResolved, + &singlePayloadEnumGeneric, + &multiPayloadEnumFN, + &multiPayloadEnumFNResolved, + &multiPayloadEnumGeneric, }; static void handleRefCountsInitWithCopy(const Metadata *metadata, @@ -1094,29 +1033,29 @@ static void resilientInitWithTake(const Metadata *metadata, } static const InitFn initWithTakeTable[] = { - &handleEnd, - nullptr, - nullptr, - nullptr, - nullptr, - nullptr, - nullptr, - &unknownWeakInitWithTake, - &bridgeRetainBranchless, - nullptr, - nullptr, - nullptr, // Custom - &metatypeInitWithTake, - nullptr, // Generic - &existentialInitWithTake, - &resilientInitWithTake, - &singlePayloadEnumSimpleBranchless, - &singlePayloadEnumFNBranchless, - &singlePayloadEnumFNResolvedBranchless, - &singlePayloadEnumGenericBranchless, - &multiPayloadEnumFNBranchless, - &multiPayloadEnumFNResolvedBranchless, - &multiPayloadEnumGenericBranchless, + &handleEnd, + nullptr, + nullptr, + nullptr, + nullptr, + nullptr, + nullptr, + &unknownWeakInitWithTake, + &bridgeRetain, + nullptr, + nullptr, + nullptr, // Custom + &metatypeInitWithTake, + nullptr, // Generic + &existentialInitWithTake, + &resilientInitWithTake, + &singlePayloadEnumSimple, + &singlePayloadEnumFN, + &singlePayloadEnumFNResolved, + &singlePayloadEnumGeneric, + &multiPayloadEnumFN, + &multiPayloadEnumFNResolved, + &multiPayloadEnumGeneric, }; static void handleRefCountsInitWithTake(const Metadata *metadata, @@ -1369,7 +1308,7 @@ static void handleSingleRefCountDestroy(const Metadata *metadata, if (SWIFT_UNLIKELY(tag == 0)) { return; } - destroyTableBranchless[tag](metadata, reader, addrOffset, addr); + destroyTable[tag](metadata, reader, addrOffset, addr); } static void handleSingleRefCountInitWithCopy(const Metadata *metadata,