mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
9896d761e8
Summary: Count the per-module number of basic blocks when the module summary is computed and sum them up during Thin LTO indexing. This is used to estimate the working set size under the partial sample PGO. This is split off of D79831. Reviewers: davidxl, espindola Subscribers: emaste, inglorion, hiraditya, MaskRay, steven_wu, dexonsmith, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80403
46 lines
1.4 KiB
LLVM
46 lines
1.4 KiB
LLVM
; Test to check the callgraph for calls to casts.
|
|
; RUN: opt -module-summary %s -o %t.o
|
|
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
|
|
; PR34966
|
|
|
|
; CHECK: <GLOBALVAL_SUMMARY_BLOCK
|
|
; CHECK-NEXT: <VERSION
|
|
; CHECK-NEXT: <FLAGS
|
|
; "op7" is a call to "callee" function.
|
|
; CHECK-NEXT: <PERMODULE {{.*}} op9=3 op10=[[ALIASID:[0-9]+]]/>
|
|
; "another_caller" has only references but no calls.
|
|
; CHECK-NEXT: <PERMODULE {{.*}} op4=3 {{.*}} op9={{[0-9]+}}/>
|
|
; CHECK-NEXT: <PERMODULE {{.*}} op0=[[ALIASEEID:[0-9]+]]
|
|
; CHECK-NEXT: <ALIAS {{.*}} op0=[[ALIASID]] {{.*}} op2=[[ALIASEEID]]/>
|
|
; CHECK-NEXT: <BLOCK_COUNT op0=3/>
|
|
; CHECK-NEXT: </GLOBALVAL_SUMMARY_BLOCK>
|
|
|
|
; ModuleID = 'thinlto-function-summary-callgraph-cast.ll'
|
|
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
define void @caller() {
|
|
call void bitcast (void (...)* @callee to void ()*)()
|
|
call void bitcast (void (...)* @analias to void ()*)()
|
|
ret void
|
|
}
|
|
|
|
define void @another_caller() {
|
|
; Test calls that aren't handled either as direct or indirect.
|
|
call void select (i1 icmp eq (i32* @global, i32* null), void ()* @f, void ()* @g)()
|
|
ret void
|
|
}
|
|
|
|
declare void @callee(...)
|
|
|
|
@analias = alias void (...), bitcast (void ()* @aliasee to void (...)*)
|
|
|
|
define void @aliasee() {
|
|
entry:
|
|
ret void
|
|
}
|
|
|
|
declare void @f()
|
|
declare void @g()
|
|
@global = extern_weak global i32
|