xref: /llvm-project/llvm/test/Transforms/ForcedFunctionAttrs/FunctionAnnotator.ll (revision ea9e47d534fb396b5792bef26d669dc0c2618af0)
1*ea9e47d5SPuneeth A R; RUN: opt -passes='forceattrs' -forceattrs-csv-path="%S/FunctionAnnotation.csv" -S < %s | FileCheck %s
2*ea9e47d5SPuneeth A R; RUN: opt -passes='forceattrs' -forceattrs-csv-path="%S/DoesNotExist.csv" -S < %s 2>&1 | FileCheck %s --check-prefix=NonexistentFunc
3*ea9e47d5SPuneeth A Rdefine void @first_function() {
4*ea9e47d5SPuneeth A R; CHECK: @first_function() #0
5*ea9e47d5SPuneeth A R  ret void
6*ea9e47d5SPuneeth A R}
7*ea9e47d5SPuneeth A R
8*ea9e47d5SPuneeth A Rdefine void @second_function() {
9*ea9e47d5SPuneeth A R; CHECK: @second_function() #1
10*ea9e47d5SPuneeth A R  ret void
11*ea9e47d5SPuneeth A R}
12*ea9e47d5SPuneeth A R
13*ea9e47d5SPuneeth A Rdefine void @third_function() {
14*ea9e47d5SPuneeth A R; CHECK: @third_function() #0
15*ea9e47d5SPuneeth A R  ret void
16*ea9e47d5SPuneeth A R}
17*ea9e47d5SPuneeth A R
18*ea9e47d5SPuneeth A Rdefine void @fourth_function() {
19*ea9e47d5SPuneeth A R; CHECK: @fourth_function() #2
20*ea9e47d5SPuneeth A R  ret void
21*ea9e47d5SPuneeth A R}
22*ea9e47d5SPuneeth A R
23*ea9e47d5SPuneeth A Rdefine void @fifth_function() {
24*ea9e47d5SPuneeth A R; CHECK: @fifth_function() #3
25*ea9e47d5SPuneeth A R  ret void
26*ea9e47d5SPuneeth A R}
27*ea9e47d5SPuneeth A R
28*ea9e47d5SPuneeth A R; CHECK-LABEL: attributes #0 = { "opt-level"="O1" }
29*ea9e47d5SPuneeth A R
30*ea9e47d5SPuneeth A R; CHECK-LABEL: attributes #1 = { cold }
31*ea9e47d5SPuneeth A R
32*ea9e47d5SPuneeth A R; CHECK-LABEL: attributes #2 = { "opt-level"="O2" }
33*ea9e47d5SPuneeth A R
34*ea9e47d5SPuneeth A R; CHECK-LABEL: attributes #3 = { "foo"="bar" }
35*ea9e47d5SPuneeth A R
36*ea9e47d5SPuneeth A R; NonexistentFunc: Function in CSV file at line 1 does not exist.
37