mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
Summary: Implements AsmWriter support for printing the module summary index to assembly with the format discussed in the RFC "LLVM Assembly format for ThinLTO Summary". Implements just enough of the parsing support to recognize and ignore the summary entries. As agreed in the RFC thread, this will be the behavior when assembling the IR. A follow on change will implement parsing/assembling of the summary entries for use by tools that currently build the summary index from bitcode. Reviewers: dexonsmith, pcc Subscribers: inglorion, eraman, steven_wu, dblaikie, llvm-commits Differential Revision: https://reviews.llvm.org/D46699 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@333335 91177308-0d34-0410-b5e6-96231b3b80d8
42 lines
1.6 KiB
LLVM
42 lines
1.6 KiB
LLVM
; Test to check the callgraph in summary
|
|
; RUN: opt -write-relbf-to-summary -module-summary %s -o %t.o
|
|
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
|
|
; RUN: llvm-dis -o - %t.o | FileCheck %s --check-prefix=DIS
|
|
|
|
|
|
; CHECK: <SOURCE_FILENAME
|
|
; CHECK-NEXT: <GLOBALVAR
|
|
; CHECK-NEXT: <FUNCTION
|
|
; "func"
|
|
; CHECK-NEXT: <FUNCTION op0=17 op1=4
|
|
; CHECK: <GLOBALVAL_SUMMARY_BLOCK
|
|
; CHECK-NEXT: <VERSION
|
|
; See if the call to func is registered.
|
|
; CHECK-NEXT: <PERMODULE_RELBF {{.*}} op4=1 {{.*}} op7=256
|
|
; CHECK-NEXT: </GLOBALVAL_SUMMARY_BLOCK>
|
|
; CHECK: <STRTAB_BLOCK
|
|
; CHECK-NEXT: blob data = 'undefinedglobmainfunc{{.*}}'
|
|
|
|
|
|
; 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() #0 {
|
|
entry:
|
|
call void (...) @func()
|
|
%u = load i32, i32* @undefinedglob
|
|
ret i32 %u
|
|
}
|
|
|
|
declare void @func(...) #1
|
|
@undefinedglob = external global i32
|
|
|
|
; OLD: Index {{.*}} contains 1 nodes (1 functions, 0 alias, 0 globals) and 1 edges (0 refs and 1 calls)
|
|
|
|
; DIS: ^0 = module: (path: "{{.*}}/test/Bitcode/Output/thinlto-function-summary-callgraph-relbf.ll.tmp.o", hash: (0, 0, 0, 0, 0))
|
|
; DIS: ^1 = gv: (name: "func") ; guid = 7289175272376759421
|
|
; DIS: ^2 = gv: (name: "main", summaries: (function: (module: ^0, flags: (linkage: external, notEligibleToImport: 0, live: 0, dsoLocal: 0), insts: 3, calls: ((callee: ^1, relbf: 256)), refs: (^3)))) ; guid = 15822663052811949562
|
|
; DIS: ^3 = gv: (name: "undefinedglob") ; guid = 18036901804029949403
|