File tree Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Original file line number Diff line number Diff line change 1+ //@ compile-flags: -O
2+ #![ crate_type = "lib" ]
3+ #![ feature( cold_path) ]
4+
5+ use std:: hint:: cold_path;
6+
7+ #[ inline( never) ]
8+ #[ no_mangle]
9+ pub fn path_a ( ) {
10+ println ! ( "path a" ) ;
11+ }
12+
13+ #[ inline( never) ]
14+ #[ no_mangle]
15+ pub fn path_b ( ) {
16+ println ! ( "path b" ) ;
17+ }
18+
19+ #[ no_mangle]
20+ pub fn test1 ( x : bool ) {
21+ if x {
22+ path_a ( ) ;
23+ } else {
24+ cold_path ( ) ;
25+ path_b ( ) ;
26+ }
27+ }
28+
29+ #[ no_mangle]
30+ pub fn test2 ( x : i32 ) {
31+ match x > 0 {
32+ true => path_a ( ) ,
33+ false => {
34+ cold_path ( ) ;
35+ path_b ( )
36+ }
37+ }
38+ }
39+
40+ // CHECK-LABEL: @test1(
41+ // CHECK: br i1 %x, label %bb1, label %bb2, !prof ![[NUM:[0-9]+]]
42+ // CHECK: bb2:
43+ // CHECK: path_b
44+ // CHECK: bb1:
45+ // CHECK: path_a
46+
47+ // CHECK-LABEL: @test2(
48+ // CHECK: br i1 %_2, label %bb2, label %bb1, !prof ![[NUM]]
49+ // CHECK: bb1:
50+ // CHECK: path_b
51+ // CHECK: bb2:
52+ // CHECK: path_a
53+
54+ // CHECK: ![[NUM]] = !{!"branch_weights", {{(!"expected", )?}}i32 2000, i32 1}
You can’t perform that action at this time.
0 commit comments