mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 20:29:48 +00:00
d2069333ee
Currently, there's a single flag, checked by the pass itself. It can't force-enable the pass (and is on by default), because it might not even have been created, as that's the targets decision. Instead, have separate explicit flags, so that the decision is consistently made in the target. Keep the flag as a last-resort "force-disable GlobalMerge" for now, for backwards compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234666 91177308-0d34-0410-b5e6-96231b3b80d8
28 lines
1.2 KiB
LLVM
28 lines
1.2 KiB
LLVM
; RUN: llc %s -mtriple=aarch64-none-linux-gnu -aarch64-global-merge -o - | FileCheck %s
|
|
; RUN: llc %s -mtriple=aarch64-none-linux-gnu -aarch64-global-merge -global-merge-on-external -o - | FileCheck %s
|
|
|
|
; RUN: llc %s -mtriple=aarch64-linux-gnuabi -aarch64-global-merge -o - | FileCheck %s
|
|
; RUN: llc %s -mtriple=aarch64-linux-gnuabi -aarch64-global-merge -global-merge-on-external -o - | FileCheck %s
|
|
|
|
; RUN: llc %s -mtriple=aarch64-apple-ios -aarch64-global-merge -o - | FileCheck %s --check-prefix=CHECK-APPLE-IOS
|
|
; RUN: llc %s -mtriple=aarch64-apple-ios -aarch64-global-merge -global-merge-on-external -o - | FileCheck %s --check-prefix=CHECK-APPLE-IOS
|
|
|
|
@m = internal global i32 0, align 4
|
|
@n = internal global i32 0, align 4
|
|
|
|
define void @f1(i32 %a1, i32 %a2) {
|
|
;CHECK-APPLE-IOS-NOT: adrp
|
|
;CHECK-APPLE-IOS: adrp x8, __MergedGlobals@PAGE
|
|
;CHECK-APPLE-IOS-NOT: adrp
|
|
;CHECK-APPLE-IOS: add x8, x8, __MergedGlobals@PAGEOFF
|
|
store i32 %a1, i32* @m, align 4
|
|
store i32 %a2, i32* @n, align 4
|
|
ret void
|
|
}
|
|
|
|
;CHECK: .type _MergedGlobals,@object // @_MergedGlobals
|
|
;CHECK: .local _MergedGlobals
|
|
;CHECK: .comm _MergedGlobals,8,8
|
|
|
|
;CHECK-APPLE-IOS: .zerofill __DATA,__bss,__MergedGlobals,8,3 ; @_MergedGlobals
|