mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
8966da17ee
Globals that are promoted to an ARM constant pool may alias with another existing constant pool entry. We need to keep a reference to all globals that were promoted to each constant pool value so that we can emit a distinct label for each promoted global. These labels are necessary so that debug info can refer to the promoted global without an undefined reference during linking. Patch by Stephen Crane! llvm-svn: 312692
22 lines
578 B
LLVM
22 lines
578 B
LLVM
; RUN: llc -mtriple=arm-eabi -relocation-model=static -arm-promote-constant < %s | FileCheck %s
|
|
|
|
@const1 = private unnamed_addr constant i32 0, align 4
|
|
@const2 = private unnamed_addr constant i32 0, align 4
|
|
|
|
; const1 and const2 both need labels for debug info, but will be coalesced into
|
|
; a single constpool entry
|
|
|
|
; CHECK-LABEL: @test1
|
|
; CHECK-DAG: const1:
|
|
; CHECK-DAG: const2:
|
|
; CHECK: .fnend
|
|
define void @test1() {
|
|
%1 = load i32, i32* @const1, align 4
|
|
call void @a(i32 %1)
|
|
%2 = load i32, i32* @const2, align 4
|
|
call void @a(i32 %2)
|
|
ret void
|
|
}
|
|
|
|
declare void @a(i32)
|