-
Notifications
You must be signed in to change notification settings - Fork 10.4k
/
Copy pathsamplepgo.swift
52 lines (35 loc) · 1.68 KB
/
samplepgo.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// RUN: %empty-directory(%t)
// RUN: split-file %s %t
// ----------------------------------------
// Test the -profile-sample-use= flag using bogus data, to ensure it's actually
// reaching LLVM in the expected way.
// RUN: %target-swiftc_driver -v %t/program.swift -module-name test -emit-ir \
// RUN: -O -profile-sample-use=%t/profile.txt -o %t/has-data.ll \
// RUN: > %t/flags.txt
// RUN: %FileCheck %s --check-prefix CHECK-STDERR --input-file %t/flags.txt
// CHECK-STDERR: -Xllvm -sample-profile-use-profi
// RUN: %FileCheck %s --input-file %t/has-data.ll
// CHECK: define{{.*}} @"$s4test8anythingyyF"() #[[ATTRID:[0-9]+]]
// CHECK: attributes #[[ATTRID]] = {{.*}} "use-sample-profile"
// CHECK-LABEL: !llvm.module.flags
// CHECK: !{!"ProfileFormat", !"SampleProfile"}
// CHECK: !{!"TotalCount", i64 2001}
// ----------------------------------------
// Now, test cases where there there should not be any profile metadata,
// such as when no data is provided
// RUN: %target-swift-frontend %t/program.swift -module-name test -emit-ir \
// RUN: -O -o %t/no-data.ll
// RUN: %FileCheck --check-prefix CHECK-NODATA %s < %t/no-data.ll
// CHECK-NODATA: define{{.*}} @"$s4test8anythingyyF"() #[[ATTRID:[0-9]+]]
// CHECK-NODATA-NOT: attributes #[[ATTRID]] = {{.*}} "use-sample-profile"
// CHECK-NODATA-LABEL: !llvm.module.flags
// CHECK-NODATA-NOT: Profile
// FIXME: It appears that Windows does not use the new swift-driver.
// This test in particular includes end-to-end testing coverage via
// that driver to ensure the flag works.
// REQUIRES: OS=macosx || OS=linux-gnu
//--- program.swift
public func anything() {}
//--- profile.txt
bar:100:100
1: 2001