Skip to content

Commit

Permalink
Remove inline never
Browse files Browse the repository at this point in the history
  • Loading branch information
madsmtm committed Jun 16, 2022
1 parent 84fab23 commit 84308a8
Show file tree
Hide file tree
Showing 9 changed files with 77 additions and 238 deletions.
2 changes: 1 addition & 1 deletion objc2/src/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ macro_rules! sel {
// HACK: Wrap the statics in a non-generic, `#[inline(never)]`
// function to "coerce" the compiler to group all of them into the
// same codegen unit to avoid link errors
#[inline(never)]
// #[inline(never)]
fn objc_static_workaround() -> $crate::runtime::Sel {
const X: &[u8] = $sel.as_bytes();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -216,4 +216,4 @@ attributes #3 = { inaccessiblememonly nounwind }
!110 = distinct !{!110, !111, !"_ZN4core6result19Result$LT$T$C$E$GT$3map17h6973c903a4a56d77E: argument 0"}
!111 = distinct !{!111, !"_ZN4core6result19Result$LT$T$C$E$GT$3map17h6973c903a4a56d77E"}
!112 = distinct !{!112, !111, !"_ZN4core6result19Result$LT$T$C$E$GT$3map17h6973c903a4a56d77E: %self"}
!113 = !{i32 14074828}
!113 = !{i32 14074831}
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ attributes #2 = { inaccessiblememonly nounwind }
!8 = distinct !{!8, !"_ZN5objc27message8platform15send_unverified17hc201b8e753fc02dbE"}
!9 = distinct !{!9, !10, !"_ZN5objc27message15MessageReceiver12send_message17hb26bf01fb9c18ba0E: argument 0"}
!10 = distinct !{!10, !"_ZN5objc27message15MessageReceiver12send_message17hb26bf01fb9c18ba0E"}
!11 = !{i32 14073348}
!11 = !{i32 14073351}
28 changes: 6 additions & 22 deletions tests/assembly/test_static_sel/expected/apple-aarch64.s
Original file line number Diff line number Diff line change
Expand Up @@ -2,52 +2,36 @@
.globl _get_sel
.p2align 2
_get_sel:
b __ZN15test_static_sel7get_sel22objc_static_workaround17hf021ecee7e14d2bcE

.globl _get_same_sel
.p2align 2
_get_same_sel:
b __ZN15test_static_sel12get_same_sel22objc_static_workaround17h689e18767947b202E

.globl _get_different_sel
.p2align 2
_get_different_sel:
b __ZN15test_static_sel17get_different_sel22objc_static_workaround17he6226ef83c3bdd0dE

.globl _unused_sel
.p2align 2
_unused_sel:
b __ZN15test_static_sel10unused_sel22objc_static_workaround17h64016513692d2d11E

.p2align 2
__ZN15test_static_sel7get_sel22objc_static_workaround17hf021ecee7e14d2bcE:
Lloh0:
adrp x8, L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234@PAGE
Lloh1:
ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234@PAGEOFF]
ret
.loh AdrpLdr Lloh0, Lloh1

.globl _get_same_sel
.p2align 2
__ZN15test_static_sel12get_same_sel22objc_static_workaround17h689e18767947b202E:
_get_same_sel:
Lloh2:
adrp x8, L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38@PAGE
Lloh3:
ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38@PAGEOFF]
ret
.loh AdrpLdr Lloh2, Lloh3

.globl _get_different_sel
.p2align 2
__ZN15test_static_sel17get_different_sel22objc_static_workaround17he6226ef83c3bdd0dE:
_get_different_sel:
Lloh4:
adrp x8, L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8@PAGE
Lloh5:
ldr x0, [x8, L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8@PAGEOFF]
ret
.loh AdrpLdr Lloh4, Lloh5

.globl _unused_sel
.p2align 2
__ZN15test_static_sel10unused_sel22objc_static_workaround17h64016513692d2d11E:
_unused_sel:
Lloh6:
adrp x8, L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb@PAGE
Lloh7:
Expand Down
56 changes: 18 additions & 38 deletions tests/assembly/test_static_sel/expected/apple-armv7.s
Original file line number Diff line number Diff line change
Expand Up @@ -4,59 +4,39 @@
.p2align 2
.code 32
_get_sel:
b __ZN15test_static_sel7get_sel22objc_static_workaround17h0a84d86e18c21b1cE

.globl _get_same_sel
.p2align 2
.code 32
_get_same_sel:
b __ZN15test_static_sel12get_same_sel22objc_static_workaround17h791703c1934ec802E

.globl _get_different_sel
.p2align 2
.code 32
_get_different_sel:
b __ZN15test_static_sel17get_different_sel22objc_static_workaround17h597599808d3c9f09E

.globl _unused_sel
.p2align 2
.code 32
_unused_sel:
b __ZN15test_static_sel10unused_sel22objc_static_workaround17h8ff9bee2a8576529E

.p2align 2
.code 32
__ZN15test_static_sel7get_sel22objc_static_workaround17h0a84d86e18c21b1cE:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-(LPC4_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-(LPC4_0+8))
LPC4_0:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-(LPC0_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-(LPC0_0+8))
LPC0_0:
ldr r0, [pc, r0]
bx lr

.globl _get_same_sel
.p2align 2
.code 32
__ZN15test_static_sel12get_same_sel22objc_static_workaround17h791703c1934ec802E:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-(LPC5_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-(LPC5_0+8))
LPC5_0:
_get_same_sel:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-(LPC1_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-(LPC1_0+8))
LPC1_0:
ldr r0, [pc, r0]
bx lr

.globl _get_different_sel
.p2align 2
.code 32
__ZN15test_static_sel17get_different_sel22objc_static_workaround17h597599808d3c9f09E:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-(LPC6_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-(LPC6_0+8))
LPC6_0:
_get_different_sel:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-(LPC2_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-(LPC2_0+8))
LPC2_0:
ldr r0, [pc, r0]
bx lr

.globl _unused_sel
.p2align 2
.code 32
__ZN15test_static_sel10unused_sel22objc_static_workaround17h8ff9bee2a8576529E:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-(LPC7_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-(LPC7_0+8))
LPC7_0:
_unused_sel:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-(LPC3_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-(LPC3_0+8))
LPC3_0:
ldr r0, [pc, r0]
bx lr

Expand Down
68 changes: 18 additions & 50 deletions tests/assembly/test_static_sel/expected/apple-armv7s.s
Original file line number Diff line number Diff line change
Expand Up @@ -4,71 +4,39 @@
.p2align 2
.code 32
_get_sel:
push {r7, lr}
mov r7, sp
bl __ZN15test_static_sel7get_sel22objc_static_workaround17h9f3332e52769ebdeE
pop {r7, pc}

.globl _get_same_sel
.p2align 2
.code 32
_get_same_sel:
push {r7, lr}
mov r7, sp
bl __ZN15test_static_sel12get_same_sel22objc_static_workaround17hf2c24185652c28b5E
pop {r7, pc}

.globl _get_different_sel
.p2align 2
.code 32
_get_different_sel:
push {r7, lr}
mov r7, sp
bl __ZN15test_static_sel17get_different_sel22objc_static_workaround17hd87e36fa2ddfca2bE
pop {r7, pc}

.globl _unused_sel
.p2align 2
.code 32
_unused_sel:
push {r7, lr}
mov r7, sp
bl __ZN15test_static_sel10unused_sel22objc_static_workaround17h21272a31a7d909b3E
pop {r7, pc}

.p2align 2
.code 32
__ZN15test_static_sel7get_sel22objc_static_workaround17h9f3332e52769ebdeE:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-(LPC4_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-(LPC4_0+8))
LPC4_0:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-(LPC0_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-(LPC0_0+8))
LPC0_0:
ldr r0, [pc, r0]
bx lr

.globl _get_same_sel
.p2align 2
.code 32
__ZN15test_static_sel12get_same_sel22objc_static_workaround17hf2c24185652c28b5E:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-(LPC5_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-(LPC5_0+8))
LPC5_0:
_get_same_sel:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-(LPC1_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-(LPC1_0+8))
LPC1_0:
ldr r0, [pc, r0]
bx lr

.globl _get_different_sel
.p2align 2
.code 32
__ZN15test_static_sel17get_different_sel22objc_static_workaround17hd87e36fa2ddfca2bE:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-(LPC6_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-(LPC6_0+8))
LPC6_0:
_get_different_sel:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-(LPC2_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-(LPC2_0+8))
LPC2_0:
ldr r0, [pc, r0]
bx lr

.globl _unused_sel
.p2align 2
.code 32
__ZN15test_static_sel10unused_sel22objc_static_workaround17h21272a31a7d909b3E:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-(LPC7_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-(LPC7_0+8))
LPC7_0:
_unused_sel:
movw r0, :lower16:(L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-(LPC3_0+8))
movt r0, :upper16:(L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-(LPC3_0+8))
LPC3_0:
ldr r0, [pc, r0]
bx lr

Expand Down
64 changes: 18 additions & 46 deletions tests/assembly/test_static_sel/expected/apple-x86.s
Original file line number Diff line number Diff line change
Expand Up @@ -5,74 +5,46 @@
_get_sel:
push ebp
mov ebp, esp
pop ebp
jmp __ZN15test_static_sel7get_sel22objc_static_workaround17hd23e42ee41d695f7E

.globl _get_same_sel
.p2align 4, 0x90
_get_same_sel:
push ebp
mov ebp, esp
pop ebp
jmp __ZN15test_static_sel12get_same_sel22objc_static_workaround17heb39f49b6d0f52f7E

.globl _get_different_sel
.p2align 4, 0x90
_get_different_sel:
push ebp
mov ebp, esp
pop ebp
jmp __ZN15test_static_sel17get_different_sel22objc_static_workaround17hb792ee3019ecb344E

.globl _unused_sel
.p2align 4, 0x90
_unused_sel:
push ebp
mov ebp, esp
pop ebp
jmp __ZN15test_static_sel10unused_sel22objc_static_workaround17h0d8f4703d53c259bE

.p2align 4, 0x90
__ZN15test_static_sel7get_sel22objc_static_workaround17hd23e42ee41d695f7E:
push ebp
mov ebp, esp
call L4$pb
L4$pb:
call L0$pb
L0$pb:
pop eax
mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-L4$pb]
mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_43d7e4d3b832d234-L0$pb]
pop ebp
ret

.globl _get_same_sel
.p2align 4, 0x90
__ZN15test_static_sel12get_same_sel22objc_static_workaround17heb39f49b6d0f52f7E:
_get_same_sel:
push ebp
mov ebp, esp
call L5$pb
L5$pb:
call L1$pb
L1$pb:
pop eax
mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-L5$pb]
mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_475a96ed80683d38-L1$pb]
pop ebp
ret

.globl _get_different_sel
.p2align 4, 0x90
__ZN15test_static_sel17get_different_sel22objc_static_workaround17hb792ee3019ecb344E:
_get_different_sel:
push ebp
mov ebp, esp
call L6$pb
L6$pb:
call L2$pb
L2$pb:
pop eax
mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-L6$pb]
mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_7ece3464aee33aa8-L2$pb]
pop ebp
ret

.globl _unused_sel
.p2align 4, 0x90
__ZN15test_static_sel10unused_sel22objc_static_workaround17h0d8f4703d53c259bE:
_unused_sel:
push ebp
mov ebp, esp
call L7$pb
L7$pb:
call L3$pb
L3$pb:
pop eax
mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-L7$pb]
mov eax, dword ptr [eax + L_OBJC_SELECTOR_REFERENCES_501d7eaffe8512eb-L3$pb]
pop ebp
ret

Expand Down
Loading

0 comments on commit 84308a8

Please sign in to comment.