Recently eXecute Only (XO) codegen was also allowed for armv6-M. Previously this was only implemented for ~armv7+, effectively if MOVW/MOVT is available. Regarding long calls, we remove the check for MOVW/MOVT when generating code for XO, which already was redundant as in the subtarget initialization we already check if XO is valid for the target. And targets that generate valid XO code should be able to handle the (wrapper globaladdress) node. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D153782
22 lines
466 B
LLVM
22 lines
466 B
LLVM
; RUN: llc -mtriple=arm-eabi %s -o /dev/null
|
|
; RUN: llc -mtriple=thumbv6m-eabi -mattr=+execute-only %s -o -
|
|
|
|
define void @test1() {
|
|
%tmp = alloca [ 64 x i32 ] , align 4
|
|
ret void
|
|
}
|
|
|
|
define void @test2() {
|
|
%tmp = alloca [ 4168 x i8 ] , align 4
|
|
ret void
|
|
}
|
|
|
|
define i32 @test3() {
|
|
%retval = alloca i32, align 4
|
|
%tmp = alloca i32, align 4
|
|
%a = alloca [805306369 x i8], align 16
|
|
store i32 0, ptr %tmp
|
|
%tmp1 = load i32, ptr %tmp
|
|
ret i32 %tmp1
|
|
}
|