Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В gcc 9.2 похоже уже норм:
is_sorted:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r1, #1
ble .L4
movs r2, #0
push {r4}
subs r4, r1, #1
ldr r3, [r0]
b .L3
.L13:
cmp r2, r4
beq .L12
.L3:
mov r1, r3
ldr r3, [r0, #4]!
adds r2, r2, #1
cmp r3, r1
bge .L13
movs r0, #0
ldr r4, [sp], #4
bx lr
.L12:
movs r0, #1
ldr r4, [sp], #4
bx lr
.L4:
movs r0, #1
bx lr
Как LLVM оптимизирует функцию