CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
411 lines
12 KiB
ArmAsm
411 lines
12 KiB
ArmAsm
# REQUIRES: aarch64
|
|
# RUN: rm -rf %t; mkdir %t && cd %t
|
|
|
|
############ Test merging multiple categories into a single category ############
|
|
## Apply category merging to swiftc code just make sure we can handle addends
|
|
## and don't erase category names for swift -- in order to not crash
|
|
# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos -o cat_swift.o %s
|
|
# RUN: %lld -arch arm64 -dylib -o cat_swift.dylib cat_swift.o -objc_category_merging -no_objc_relative_method_lists
|
|
# RUN: llvm-objdump --objc-meta-data --macho cat_swift.dylib | FileCheck %s --check-prefixes=CHECK-MERGE
|
|
|
|
; CHECK-MERGE: Contents of (__DATA_CONST,__objc_classlist) section
|
|
; CHECK-MERGE-NEXT: _$s11SimpleClassAACN
|
|
; CHECK-MERGE-NEXT: isa {{.+}} _OBJC_METACLASS_$__TtC11SimpleClass11SimpleClass
|
|
; CHECK-MERGE-NEXT: superclass 0x0
|
|
; CHECK-MERGE-NEXT: cache 0x0
|
|
; CHECK-MERGE-NEXT: vtable 0x0
|
|
; CHECK-MERGE-NEXT: data {{.+}} (struct class_ro_t *) Swift class
|
|
; CHECK-MERGE-NEXT: flags 0x80
|
|
; CHECK-MERGE-NEXT: instanceStart 8
|
|
; CHECK-MERGE-NEXT: instanceSize 8
|
|
; CHECK-MERGE-NEXT: reserved 0x0
|
|
; CHECK-MERGE-NEXT: ivarLayout 0x0
|
|
; CHECK-MERGE-NEXT: name {{.+}} _TtC11SimpleClass11SimpleClass
|
|
; CHECK-MERGE-NEXT: baseMethods {{.+}} (struct method_list_t *)
|
|
; CHECK-MERGE-NEXT: entsize 24
|
|
; CHECK-MERGE-NEXT: count 3
|
|
; CHECK-MERGE-NEXT: name {{.+}} categoryInstanceMethod
|
|
; CHECK-MERGE-NEXT: types {{.+}} q16@0:8
|
|
; CHECK-MERGE-NEXT: imp _$s11SimpleClassAAC22categoryInstanceMethodSiyFTo
|
|
; CHECK-MERGE-NEXT: name {{.+}} baseClassInstanceMethod
|
|
; CHECK-MERGE-NEXT: types {{.+}} i16@0:8
|
|
; CHECK-MERGE-NEXT: imp _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyFTo
|
|
; CHECK-MERGE-NEXT: name {{.+}} init
|
|
; CHECK-MERGE-NEXT: types {{.+}} @16@0:8
|
|
; CHECK-MERGE-NEXT: imp _$s11SimpleClassAACABycfcTo
|
|
; CHECK-MERGE-NEXT: baseProtocols 0x0
|
|
; CHECK-MERGE-NEXT: ivars 0x0
|
|
; CHECK-MERGE-NEXT: weakIvarLayout 0x0
|
|
; CHECK-MERGE-NEXT: baseProperties 0x0
|
|
; CHECK-MERGE-NEXT: Meta Class
|
|
; CHECK-MERGE-NEXT: isa 0x0
|
|
; CHECK-MERGE-NEXT: superclass 0x0
|
|
; CHECK-MERGE-NEXT: cache 0x0
|
|
; CHECK-MERGE-NEXT: vtable 0x0
|
|
; CHECK-MERGE-NEXT: data {{.+}} (struct class_ro_t *)
|
|
; CHECK-MERGE-NEXT: flags 0x81 RO_META
|
|
; CHECK-MERGE-NEXT: instanceStart 40
|
|
; CHECK-MERGE-NEXT: instanceSize 40
|
|
; CHECK-MERGE-NEXT: reserved 0x0
|
|
; CHECK-MERGE-NEXT: ivarLayout 0x0
|
|
; CHECK-MERGE-NEXT: name {{.+}} _TtC11SimpleClass11SimpleClass
|
|
; CHECK-MERGE-NEXT: baseMethods 0x0 (struct method_list_t *)
|
|
; CHECK-MERGE-NEXT: baseProtocols 0x0
|
|
; CHECK-MERGE-NEXT: ivars 0x0
|
|
; CHECK-MERGE-NEXT: weakIvarLayout 0x0
|
|
; CHECK-MERGE-NEXT: baseProperties 0x0
|
|
; CHECK-MERGE-NEXT: Contents of (__DATA_CONST,__objc_imageinfo) section
|
|
; CHECK-MERGE-NEXT: version 0
|
|
; CHECK-MERGE-NEXT: flags 0x740 OBJC_IMAGE_HAS_CATEGORY_CLASS_PROPERTIES Swift 5 or later
|
|
|
|
; ================== Generated from Swift: ==================
|
|
;; > xcrun swiftc --version
|
|
;; swift-driver version: 1.109.2 Apple Swift version 6.0 (swiftlang-6.0.0.3.300 clang-1600.0.20.10)
|
|
;; > xcrun swiftc -S SimpleClass.swift -o SimpleClass.s
|
|
; import Foundation
|
|
; @objc class SimpleClass: NSObject {
|
|
; @objc func baseClassInstanceMethod() -> Int32 {
|
|
; return 2
|
|
; }
|
|
; }
|
|
; extension SimpleClass {
|
|
; @objc func categoryInstanceMethod() -> Int {
|
|
; return 3
|
|
; }
|
|
; }
|
|
|
|
; ================== Generated from Swift: ==================
|
|
.section __TEXT,__text,regular,pure_instructions
|
|
.build_version macos, 11, 0 sdk_version 12, 0
|
|
.globl _main
|
|
.p2align 2
|
|
_main:
|
|
.cfi_startproc
|
|
mov w0, #0
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.private_extern _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyF
|
|
.globl _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyF
|
|
.p2align 2
|
|
_$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyF:
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.p2align 2
|
|
_$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyFTo:
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.private_extern _$s11SimpleClassAACABycfC
|
|
.globl _$s11SimpleClassAACABycfC
|
|
.p2align 2
|
|
_$s11SimpleClassAACABycfC:
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.private_extern _$s11SimpleClassAACABycfc
|
|
.globl _$s11SimpleClassAACABycfc
|
|
.p2align 2
|
|
_$s11SimpleClassAACABycfc:
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.private_extern _$s11SimpleClassAACMa
|
|
.globl _$s11SimpleClassAACMa
|
|
.p2align 2
|
|
_$s11SimpleClassAACMa:
|
|
ret
|
|
|
|
.p2align 2
|
|
_$s11SimpleClassAACABycfcTo:
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.private_extern _$s11SimpleClassAACfD
|
|
.globl _$s11SimpleClassAACfD
|
|
.p2align 2
|
|
_$s11SimpleClassAACfD:
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.private_extern _$s11SimpleClassAAC22categoryInstanceMethodSiyF
|
|
.globl _$s11SimpleClassAAC22categoryInstanceMethodSiyF
|
|
.p2align 2
|
|
_$s11SimpleClassAAC22categoryInstanceMethodSiyF:
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.p2align 2
|
|
_$s11SimpleClassAAC22categoryInstanceMethodSiyFTo:
|
|
.cfi_startproc
|
|
ret
|
|
.cfi_endproc
|
|
|
|
.section __TEXT,__objc_methname,cstring_literals
|
|
"L_selector_data(init)":
|
|
.asciz "init"
|
|
|
|
.section __DATA,__objc_selrefs,literal_pointers,no_dead_strip
|
|
.p2align 3, 0x0
|
|
"L_selector(init)":
|
|
.quad "L_selector_data(init)"
|
|
|
|
.section __TEXT,__objc_methname,cstring_literals
|
|
"L_selector_data(dealloc)":
|
|
.asciz "dealloc"
|
|
|
|
.section __DATA,__objc_selrefs,literal_pointers,no_dead_strip
|
|
.p2align 3, 0x0
|
|
"L_selector(dealloc)":
|
|
.quad "L_selector_data(dealloc)"
|
|
|
|
.section __TEXT,__swift5_entry,regular,no_dead_strip
|
|
.p2align 2, 0x0
|
|
l_entry_point:
|
|
.long _main-l_entry_point
|
|
.long 0
|
|
|
|
.private_extern _OBJC_METACLASS_$__TtC11SimpleClass11SimpleClass
|
|
.section __DATA,__data
|
|
.globl _OBJC_METACLASS_$__TtC11SimpleClass11SimpleClass
|
|
.p2align 3, 0x0
|
|
_OBJC_METACLASS_$__TtC11SimpleClass11SimpleClass:
|
|
.quad _OBJC_METACLASS_$_NSObject
|
|
.quad _OBJC_METACLASS_$_NSObject
|
|
.quad __objc_empty_cache
|
|
.quad 0
|
|
.quad __METACLASS_DATA__TtC11SimpleClass11SimpleClass
|
|
|
|
.section __TEXT,__cstring,cstring_literals
|
|
.p2align 4, 0x0
|
|
l_.str.30._TtC11SimpleClass11SimpleClass:
|
|
.asciz "_TtC11SimpleClass11SimpleClass"
|
|
|
|
.section __DATA,__objc_const
|
|
.p2align 3, 0x0
|
|
__METACLASS_DATA__TtC11SimpleClass11SimpleClass:
|
|
.long 129
|
|
.long 40
|
|
.long 40
|
|
.long 0
|
|
.quad 0
|
|
.quad l_.str.30._TtC11SimpleClass11SimpleClass
|
|
.quad 0
|
|
.quad 0
|
|
.quad 0
|
|
.quad 0
|
|
.quad 0
|
|
|
|
.section __TEXT,__objc_methname,cstring_literals
|
|
"L_selector_data(baseClassInstanceMethod)":
|
|
.asciz "baseClassInstanceMethod"
|
|
|
|
.section __TEXT,__cstring,cstring_literals
|
|
"l_.str.7.i16@0:8":
|
|
.asciz "i16@0:8"
|
|
|
|
"l_.str.7.@16@0:8":
|
|
.asciz "@16@0:8"
|
|
|
|
.section __DATA,__objc_data
|
|
.p2align 3, 0x0
|
|
__INSTANCE_METHODS__TtC11SimpleClass11SimpleClass:
|
|
.long 24
|
|
.long 2
|
|
.quad "L_selector_data(baseClassInstanceMethod)"
|
|
.quad "l_.str.7.i16@0:8"
|
|
.quad _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyFTo
|
|
.quad "L_selector_data(init)"
|
|
.quad "l_.str.7.@16@0:8"
|
|
.quad _$s11SimpleClassAACABycfcTo
|
|
|
|
.p2align 3, 0x0
|
|
__DATA__TtC11SimpleClass11SimpleClass:
|
|
.long 128
|
|
.long 8
|
|
.long 8
|
|
.long 0
|
|
.quad 0
|
|
.quad l_.str.30._TtC11SimpleClass11SimpleClass
|
|
.quad __INSTANCE_METHODS__TtC11SimpleClass11SimpleClass
|
|
.quad 0
|
|
.quad 0
|
|
.quad 0
|
|
.quad 0
|
|
|
|
.section __TEXT,__const
|
|
l_.str.11.SimpleClass:
|
|
.asciz "SimpleClass"
|
|
|
|
.private_extern _$s11SimpleClassMXM
|
|
.section __TEXT,__constg_swiftt
|
|
.globl _$s11SimpleClassMXM
|
|
.weak_definition _$s11SimpleClassMXM
|
|
.p2align 2, 0x0
|
|
_$s11SimpleClassMXM:
|
|
.long 0
|
|
.long 0
|
|
.long (l_.str.11.SimpleClass-_$s11SimpleClassMXM)-8
|
|
|
|
.private_extern "_symbolic So8NSObjectC"
|
|
.section __TEXT,__swift5_typeref
|
|
.globl "_symbolic So8NSObjectC"
|
|
.weak_definition "_symbolic So8NSObjectC"
|
|
.p2align 1, 0x0
|
|
"_symbolic So8NSObjectC":
|
|
.ascii "So8NSObjectC"
|
|
.byte 0
|
|
|
|
.private_extern _$s11SimpleClassAACMn
|
|
.section __TEXT,__constg_swiftt
|
|
.globl _$s11SimpleClassAACMn
|
|
.p2align 2, 0x0
|
|
_$s11SimpleClassAACMn:
|
|
.long 2147483728
|
|
.long (_$s11SimpleClassMXM-_$s11SimpleClassAACMn)-4
|
|
.long (l_.str.11.SimpleClass-_$s11SimpleClassAACMn)-8
|
|
.long (_$s11SimpleClassAACMa-_$s11SimpleClassAACMn)-12
|
|
.long (_$s11SimpleClassAACMF-_$s11SimpleClassAACMn)-16
|
|
.long ("_symbolic So8NSObjectC"-_$s11SimpleClassAACMn)-20
|
|
.long 3
|
|
.long 11
|
|
.long 1
|
|
.long 0
|
|
.long 10
|
|
.long 10
|
|
.long 1
|
|
.long 16
|
|
.long (_$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyF-_$s11SimpleClassAACMn)-56
|
|
|
|
.section __DATA,__objc_data
|
|
.p2align 3, 0x0
|
|
_$s11SimpleClassAACMf:
|
|
.quad 0
|
|
.quad _$s11SimpleClassAACfD
|
|
.quad _$sBOWV
|
|
.quad _OBJC_METACLASS_$__TtC11SimpleClass11SimpleClass
|
|
.quad _OBJC_CLASS_$_NSObject
|
|
.quad __objc_empty_cache
|
|
.quad 0
|
|
.quad __DATA__TtC11SimpleClass11SimpleClass+2
|
|
.long 0
|
|
.long 0
|
|
.long 8
|
|
.short 7
|
|
.short 0
|
|
.long 112
|
|
.long 24
|
|
.quad _$s11SimpleClassAACMn
|
|
.quad 0
|
|
.quad _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyF
|
|
|
|
.private_extern "_symbolic _____ 11SimpleClassAAC"
|
|
.section __TEXT,__swift5_typeref
|
|
.globl "_symbolic _____ 11SimpleClassAAC"
|
|
.weak_definition "_symbolic _____ 11SimpleClassAAC"
|
|
.p2align 1, 0x0
|
|
"_symbolic _____ 11SimpleClassAAC":
|
|
.byte 1
|
|
.long (_$s11SimpleClassAACMn-"_symbolic _____ 11SimpleClassAAC")-1
|
|
.byte 0
|
|
|
|
.section __TEXT,__swift5_fieldmd
|
|
.p2align 2, 0x0
|
|
_$s11SimpleClassAACMF:
|
|
.long "_symbolic _____ 11SimpleClassAAC"-_$s11SimpleClassAACMF
|
|
.long ("_symbolic So8NSObjectC"-_$s11SimpleClassAACMF)-4
|
|
.short 7
|
|
.short 12
|
|
.long 0
|
|
|
|
.section __TEXT,__objc_methname,cstring_literals
|
|
"L_selector_data(categoryInstanceMethod)":
|
|
.asciz "categoryInstanceMethod"
|
|
|
|
.section __TEXT,__cstring,cstring_literals
|
|
"l_.str.7.q16@0:8":
|
|
.asciz "q16@0:8"
|
|
|
|
.section __DATA,__objc_data
|
|
.p2align 3, 0x0
|
|
__CATEGORY_INSTANCE_METHODS__TtC11SimpleClass11SimpleClass_$_SimpleClass:
|
|
.long 24
|
|
.long 1
|
|
.quad "L_selector_data(categoryInstanceMethod)"
|
|
.quad "l_.str.7.q16@0:8"
|
|
.quad _$s11SimpleClassAAC22categoryInstanceMethodSiyFTo
|
|
|
|
.section __DATA,__objc_const
|
|
.p2align 3, 0x0
|
|
__CATEGORY__TtC11SimpleClass11SimpleClass_$_SimpleClass:
|
|
.quad l_.str.11.SimpleClass
|
|
.quad _$s11SimpleClassAACMf+24
|
|
.quad __CATEGORY_INSTANCE_METHODS__TtC11SimpleClass11SimpleClass_$_SimpleClass
|
|
.quad 0
|
|
.quad 0
|
|
.quad 0
|
|
.quad 0
|
|
.long 60
|
|
.space 4
|
|
|
|
.section __TEXT,__swift5_types
|
|
.p2align 2, 0x0
|
|
l_$s11SimpleClassAACHn:
|
|
.long _$s11SimpleClassAACMn-l_$s11SimpleClassAACHn
|
|
|
|
.private_extern ___swift_reflection_version
|
|
.section __TEXT,__const
|
|
.globl ___swift_reflection_version
|
|
.weak_definition ___swift_reflection_version
|
|
.p2align 1, 0x0
|
|
___swift_reflection_version:
|
|
.short 3
|
|
|
|
.section __DATA,__objc_classlist,regular,no_dead_strip
|
|
.p2align 3, 0x0
|
|
_objc_classes_$s11SimpleClassAACN:
|
|
.quad _$s11SimpleClassAACN
|
|
|
|
.section __DATA,__objc_catlist,regular,no_dead_strip
|
|
.p2align 3, 0x0
|
|
_objc_categories:
|
|
.quad __CATEGORY__TtC11SimpleClass11SimpleClass_$_SimpleClass
|
|
|
|
.no_dead_strip _main
|
|
.no_dead_strip l_entry_point
|
|
.no_dead_strip _$s11SimpleClassAACMF
|
|
.no_dead_strip l_$s11SimpleClassAACHn
|
|
.no_dead_strip ___swift_reflection_version
|
|
.no_dead_strip _objc_classes_$s11SimpleClassAACN
|
|
.no_dead_strip _objc_categories
|
|
.section __DATA,__objc_imageinfo,regular,no_dead_strip
|
|
L_OBJC_IMAGE_INFO:
|
|
.long 0
|
|
.long 100665152
|
|
|
|
.globl _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyFTq
|
|
.private_extern _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyFTq
|
|
.alt_entry _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyFTq
|
|
.set _$s11SimpleClassAAC04baseB14InstanceMethods5Int32VyFTq, _$s11SimpleClassAACMn+52
|
|
.globl _$s11SimpleClassAACN
|
|
.private_extern _$s11SimpleClassAACN
|
|
.alt_entry _$s11SimpleClassAACN
|
|
.set _$s11SimpleClassAACN, _$s11SimpleClassAACMf+24
|
|
.globl _OBJC_CLASS_$__TtC11SimpleClass11SimpleClass
|
|
.private_extern _OBJC_CLASS_$__TtC11SimpleClass11SimpleClass
|
|
.subsections_via_symbols
|
|
|
|
_OBJC_CLASS_$_NSObject:
|
|
_OBJC_METACLASS_$_NSObject:
|
|
__objc_empty_cache:
|
|
_$sBOWV:
|
|
.quad 0
|