###### # (3) this is currently produced by llc (with a custom cc18 convention patch) for the cps_call.ll example. # I have noted the areas that should fix this output using the isel idea. ###### .section __TEXT,__text,regular,pure_instructions .macosx_version_min 10, 11 .globl _foo .align 4, 0x90 _foo: ## @foo .cfi_startproc ## BB#0: pushq %rax Ltmp0: .cfi_def_cfa_offset 16 leaq Ltmp1(%rip), %rax movq %rax, (%rsi) callq _bar # <-- will instead lower to: jmp _bar movq %rsi, %rax # <-- will be sunk during isel Ltmp1: ## Block address taken ## BB#1: ## %retpt movq (%r11), %rcx movq %r11, %rsi movq %rax, %r11 popq %rax jmpq *%rcx ## TAILCALL .cfi_endproc .globl _bar .align 4, 0x90 _bar: ## @bar .cfi_startproc ## BB#0: pushq %rax Ltmp2: .cfi_def_cfa_offset 16 movq %rsi, %rax leaq 1(%r11), %rsi movq (%rax), %rcx movq %rax, %r11 popq %rax jmpq *%rcx ## TAILCALL .cfi_endproc .subsections_via_symbols