
Information in the function `Prologue Data` is intentionally opaque. When a function with `Prologue Data` is duplicated. The self (global value) references inside `Prologue Data` is still pointing to the original function. This may cause errors like `fatal error: error in backend: Cannot represent a difference across sections`. This patch detaches the information from function `Prologue Data` and attaches it to a function metadata node. This and D116130 fix https://github.com/llvm/llvm-project/issues/49689. Reviewed By: pcc Differential Revision: https://reviews.llvm.org/D115844
19 lines
518 B
LLVM
19 lines
518 B
LLVM
; RUN: llc -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s
|
|
|
|
; CHECK: _Z3funv:
|
|
; CHECK: .cfi_startproc
|
|
; CHECK: .long 846595819
|
|
; CHECK: .long .L__llvm_rtti_proxy-_Z3funv
|
|
; CHECK: .L__llvm_rtti_proxy:
|
|
; CHECK: .quad i
|
|
; CHECK: .size .L__llvm_rtti_proxy, 8
|
|
|
|
@i = linkonce_odr constant i32 1
|
|
@__llvm_rtti_proxy = private unnamed_addr constant i32* @i
|
|
|
|
define dso_local void @_Z3funv() !func_sanitize !0 {
|
|
ret void
|
|
}
|
|
|
|
!0 = !{i32 846595819, i32** @__llvm_rtti_proxy}
|