mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
ThinLTO: Make aliases explicit in the summary
To be able to work accurately on the reference graph when taking decision about internalizing, promoting, renaming, etc. We need to have the alias information explicit. Differential Revision: http://reviews.llvm.org/D18836 From: Mehdi Amini <mehdi.amini@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266517 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
45
test/Bitcode/thinlto-alias.ll
Normal file
45
test/Bitcode/thinlto-alias.ll
Normal file
@@ -0,0 +1,45 @@
|
||||
; Test to check the callgraph in summary
|
||||
; RUN: opt -module-summary %s -o %t.o
|
||||
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
|
||||
; RUN: opt -module-summary %p/Inputs/thinlto-alias.ll -o %t2.o
|
||||
; RUN: llvm-lto -thinlto -o %t3 %t.o %t2.o
|
||||
; RUN: llvm-bcanalyzer -dump %t3.thinlto.bc | FileCheck %s --check-prefix=COMBINED
|
||||
|
||||
; CHECK: <GLOBALVAL_SUMMARY_BLOCK
|
||||
; See if the call to func is registered, using the expected callsite count
|
||||
; and value id matching the subsequent value symbol table.
|
||||
; CHECK-NEXT: <PERMODULE {{.*}} op4=[[FUNCID:[0-9]+]] op5=1/>
|
||||
; CHECK-NEXT: </GLOBALVAL_SUMMARY_BLOCK>
|
||||
; CHECK-NEXT: <VALUE_SYMTAB
|
||||
; CHECK-NEXT: <FNENTRY {{.*}} record string = 'main'
|
||||
; External function analias should have entry with value id FUNCID
|
||||
; CHECK-NEXT: <ENTRY {{.*}} op0=[[FUNCID]] {{.*}} record string = 'analias'
|
||||
; CHECK-NEXT: </VALUE_SYMTAB>
|
||||
|
||||
; COMBINED: <GLOBALVAL_SUMMARY_BLOCK
|
||||
; See if the call to analias is registered, using the expected callsite count
|
||||
; and value id matching the subsequent value symbol table.
|
||||
; COMBINED-NEXT: <COMBINED {{.*}} op4=[[ALIASID:[0-9]+]] op5=1/>
|
||||
; Followed by the alias and aliasee
|
||||
; COMBINED-NEXT: <COMBINED {{.*}}
|
||||
; COMBINED-NEXT: <COMBINED_ALIAS {{.*}} op2=[[ALIASEEOFFSET:[0-9]+]]
|
||||
; COMBINED-NEXT: </GLOBALVAL_SUMMARY_BLOCK
|
||||
; COMBINED-NEXT: <VALUE_SYMTAB
|
||||
; Entry for function func should have entry with value id ALIASID
|
||||
; COMBINED-NEXT: <COMBINED_GVDEFENTRY {{.*}} op0=[[ALIASID]] {{.*}} op2=-5751648690987223394/>
|
||||
; COMBINED-NEXT: <COMBINED_GVDEFENTRY
|
||||
; COMBINED-NEXT: <COMBINED_GVDEFENTRY {{.*}} op1=[[ALIASEEOFFSET]] op2=-1039159065113703048/>
|
||||
; COMBINED-NEXT: </VALUE_SYMTAB>
|
||||
|
||||
; ModuleID = 'thinlto-function-summary-callgraph.ll'
|
||||
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; Function Attrs: nounwind uwtable
|
||||
define i32 @main() {
|
||||
entry:
|
||||
call void (...) @analias()
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
declare void @analias(...)
|
||||
Reference in New Issue
Block a user