[PATCH] D66459: Make ShrinkWrap more consistent.
zuojian lin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 15 18:27:39 PDT 2019
linzj added a comment.
You need to clone https://github.com/linzj/llvm-toy, then checkout the branch named arm-tf-6_9_427_23. Then apply the patch llvm-patch-by-far.patch to llvm 8.0. So that you can compile the test case as follow. Because of a new calling convention v8cc.
the test case:
; ModuleID = 'main'
source_filename = "main"
target triple = "armv7-unknown-unknown-v8"
%TaggedStruct = type opaque
define v8cc %TaggedStruct addrspace(1)* @ArrayPrototypePop(i32, %TaggedStruct addrspace(1)**, %TaggedStruct addrspace(1)*, %TaggedStruct addrspace(1)*, %TaggedStruct addrspace(1)*, %TaggedStruct addrspace(1)*, %TaggedStruct addrspace(1)*, %TaggedStruct addrspace(1)*, %TaggedStruct addrspace(1)*, i8*, %TaggedStruct addrspace(1)**, i8**) #0 gc "coreclr" {
entry:
%ptr0 = bitcast %TaggedStruct addrspace(1)** %1 to i8*
%ptr1 = getelementptr i8, i8* %ptr0 , i32 -1147
store i8 0, i8* %ptr1
%cmp0 = icmp eq i32 %0, 0
br i1 %cmp0, label %exit, label %call_function
exit:
ret %TaggedStruct addrspace(1)* null
call_function:
%call_result = call v8cc %TaggedStruct addrspace(1)* @bar(%TaggedStruct addrspace(1)** %1)
ret %TaggedStruct addrspace(1)* %call_result
}
declare %TaggedStruct addrspace(1)* @bar(%TaggedStruct addrspace(1)**)
attributes #0 = { "js-function-call" "no-jump-tables"="true" "target-features"="+armv7-a,+dsp,+neon,+vfp3,-crypto,-d16,-fp-armv8,-fp-only-sp,-fp16,-thumb-mode,-vfp4" }
Without the patch this review mentioned, the entry of the function uses the r1, r0, wihout saving the csrs.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66459/new/
https://reviews.llvm.org/D66459
More information about the llvm-commits
mailing list