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