mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Be careful about scheduling nodes above previous calls. It increase usages of
more callee-saved registers and introduce copies. Only allows it if scheduling a node above calls would end up lessen register pressure. Call operands also has added ABI restrictions for register allocation, so be extra careful with hoisting them above calls. rdar://9329627 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130245 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
; RUN: llc < %s -regalloc=fast -relocation-model=pic | FileCheck %s
|
||||
|
||||
target triple = "thumbv6-apple-darwin10"
|
||||
|
||||
@fred = internal global i32 0 ; <i32*> [#uses=1]
|
||||
|
||||
define void @foo() nounwind {
|
||||
entry:
|
||||
; CHECK: str r0, [sp
|
||||
%0 = call i32 (...)* @bar() nounwind ; <i32> [#uses=1]
|
||||
; CHECK: blx _bar
|
||||
; CHECK: ldr r1, [sp
|
||||
store i32 %0, i32* @fred, align 4
|
||||
br label %return
|
||||
|
||||
return: ; preds = %entry
|
||||
ret void
|
||||
}
|
||||
|
||||
declare i32 @bar(...)
|
Reference in New Issue
Block a user