diff options
Diffstat (limited to 'test/Bitcode/thinlto-function-summary-refgraph.ll')
-rw-r--r-- | test/Bitcode/thinlto-function-summary-refgraph.ll | 59 |
1 files changed, 40 insertions, 19 deletions
diff --git a/test/Bitcode/thinlto-function-summary-refgraph.ll b/test/Bitcode/thinlto-function-summary-refgraph.ll index 882f86509ab1a..b52fce7917911 100644 --- a/test/Bitcode/thinlto-function-summary-refgraph.ll +++ b/test/Bitcode/thinlto-function-summary-refgraph.ll @@ -2,6 +2,32 @@ ; RUN: opt -module-summary %s -o %t.o ; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s +; CHECK: <SOURCE_FILENAME +; "bar" +; CHECK-NEXT: <GLOBALVAR {{.*}} op0=0 op1=3 +; "globalvar" +; CHECK-NEXT: <GLOBALVAR {{.*}} op0=3 op1=9 +; "func" +; CHECK-NEXT: <FUNCTION op0=12 op1=4 +; "func2" +; CHECK-NEXT: <FUNCTION op0=16 op1=5 +; "foo" +; CHECK-NEXT: <FUNCTION op0=21 op1=3 +; "func3" +; CHECK-NEXT: <FUNCTION op0=24 op1=5 +; "W" +; CHECK-NEXT: <FUNCTION op0=29 op1=1 +; "X" +; CHECK-NEXT: <FUNCTION op0=30 op1=1 +; "Y" +; CHECK-NEXT: <FUNCTION op0=31 op1=1 +; "Z" +; CHECK-NEXT: <FUNCTION op0=32 op1=1 +; "llvm.ctpop.i8" +; CHECK-NEXT: <FUNCTION op0=33 op1=13 +; "main" +; CHECK-NEXT: <FUNCTION op0=46 op1=4 + ; See if the calls and other references are recorded properly using the ; expected value id and other information as appropriate (callsite cout ; for calls). Use different linkage types for the various test cases to @@ -11,37 +37,32 @@ ; llvm.ctpop.i8. ; CHECK: <GLOBALVAL_SUMMARY_BLOCK ; Function main contains call to func, as well as address reference to func: -; CHECK-DAG: <PERMODULE {{.*}} op0=[[MAINID:[0-9]+]] op1=0 {{.*}} op3=1 op4=[[FUNCID:[0-9]+]] op5=[[FUNCID]]/> +; op0=main op4=func op5=func +; CHECK-DAG: <PERMODULE {{.*}} op0=11 op1=0 {{.*}} op3=1 op4=2 op5=2/> ; Function W contains a call to func3 as well as a reference to globalvar: -; CHECK-DAG: <PERMODULE {{.*}} op0=[[WID:[0-9]+]] op1=5 {{.*}} op3=1 op4=[[GLOBALVARID:[0-9]+]] op5=[[FUNC3ID:[0-9]+]]/> +; op0=W op4=globalvar op5=func3 +; CHECK-DAG: <PERMODULE {{.*}} op0=6 op1=5 {{.*}} op3=1 op4=1 op5=5/> ; Function X contains call to foo, as well as address reference to foo ; which is in the same instruction as the call: -; CHECK-DAG: <PERMODULE {{.*}} op0=[[XID:[0-9]+]] op1=1 {{.*}} op3=1 op4=[[FOOID:[0-9]+]] op5=[[FOOID]]/> +; op0=X op4=foo op5=foo +; CHECK-DAG: <PERMODULE {{.*}} op0=7 op1=1 {{.*}} op3=1 op4=4 op5=4/> ; Function Y contains call to func2, and ensures we don't incorrectly add ; a reference to it when reached while earlier analyzing the phi using its ; return value: -; CHECK-DAG: <PERMODULE {{.*}} op0=[[YID:[0-9]+]] op1=8 {{.*}} op3=0 op4=[[FUNC2ID:[0-9]+]]/> +; op0=Y op4=func2 +; CHECK-DAG: <PERMODULE {{.*}} op0=8 op1=8 {{.*}} op3=0 op4=3/> ; Function Z contains call to func2, and ensures we don't incorrectly add ; a reference to it when reached while analyzing subsequent use of its return ; value: -; CHECK-DAG: <PERMODULE {{.*}} op0=[[ZID:[0-9]+]] op1=3 {{.*}} op3=0 op4=[[FUNC2ID:[0-9]+]]/> +; op0=Z op4=func2 +; CHECK-DAG: <PERMODULE {{.*}} op0=9 op1=3 {{.*}} op3=0 op4=3/> ; Variable bar initialization contains address reference to func: -; CHECK-DAG: <PERMODULE_GLOBALVAR_INIT_REFS {{.*}} op0=[[BARID:[0-9]+]] op1=0 op2=[[FUNCID]]/> +; op0=bar op2=func +; CHECK-DAG: <PERMODULE_GLOBALVAR_INIT_REFS {{.*}} op0=0 op1=0 op2=2/> ; CHECK: </GLOBALVAL_SUMMARY_BLOCK> -; CHECK-NEXT: <VALUE_SYMTAB -; CHECK-DAG: <ENTRY {{.*}} op0=[[BARID]] {{.*}} record string = 'bar' -; CHECK-DAG: <ENTRY {{.*}} op0=[[FUNCID]] {{.*}} record string = 'func' -; CHECK-DAG: <ENTRY {{.*}} op0=[[FOOID]] {{.*}} record string = 'foo' -; CHECK-DAG: <FNENTRY {{.*}} op0=[[MAINID]] {{.*}} record string = 'main' -; CHECK-DAG: <FNENTRY {{.*}} op0=[[WID]] {{.*}} record string = 'W' -; CHECK-DAG: <FNENTRY {{.*}} op0=[[XID]] {{.*}} record string = 'X' -; CHECK-DAG: <FNENTRY {{.*}} op0=[[YID]] {{.*}} record string = 'Y' -; CHECK-DAG: <FNENTRY {{.*}} op0=[[ZID]] {{.*}} record string = 'Z' -; CHECK-DAG: <ENTRY {{.*}} op0=[[FUNC2ID]] {{.*}} record string = 'func2' -; CHECK-DAG: <ENTRY {{.*}} op0=[[FUNC3ID]] {{.*}} record string = 'func3' -; CHECK-DAG: <ENTRY {{.*}} op0=[[GLOBALVARID]] {{.*}} record string = 'globalvar' -; CHECK: </VALUE_SYMTAB> +; CHECK: <STRTAB_BLOCK +; CHECK-NEXT: blob data = 'barglobalvarfuncfunc2foofunc3WXYZllvm.ctpop.i8main' ; ModuleID = 'thinlto-function-summary-refgraph.ll' target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" |