summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorHiroshi Yamauchi <yamauchi@google.com>2020-01-13 14:19:45 -0800
committerHiroshi Yamauchi <yamauchi@google.com>2020-01-13 14:38:58 -0800
commit7b9f8e17d15d7516b186c0a85de71133b780f939 (patch)
tree30bf5c3c8409f69d23da171579cfb1572d94cb13 /llvm/test/Transforms
parenta506f7f9105eec4baac296d21c922457d6f4b52a (diff)
downloadbcm5719-llvm-7b9f8e17d15d7516b186c0a85de71133b780f939.tar.gz
bcm5719-llvm-7b9f8e17d15d7516b186c0a85de71133b780f939.zip
[PGO][CHR] Guard against 0-to-0 branch weight and avoid division by zero crash.
Summary: This fixes a crash in internal builds under SamplePGO. Reviewers: davidxl Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72653
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/PGOProfile/chr.ll26
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/test/Transforms/PGOProfile/chr.ll b/llvm/test/Transforms/PGOProfile/chr.ll
index 0221a4fd000..021ec253350 100644
--- a/llvm/test/Transforms/PGOProfile/chr.ll
+++ b/llvm/test/Transforms/PGOProfile/chr.ll
@@ -2463,6 +2463,31 @@ end:
ret i64 99
}
+; Test to not crash upon a 0:0 branch_weight metadata.
+define void @test_chr_24(i32* %i) !prof !14 {
+entry:
+ %0 = load i32, i32* %i
+ %1 = and i32 %0, 1
+ %2 = icmp eq i32 %1, 0
+ br i1 %2, label %bb1, label %bb0, !prof !17
+
+bb0:
+ call void @foo()
+ br label %bb1
+
+bb1:
+ %3 = and i32 %0, 2
+ %4 = icmp eq i32 %3, 0
+ br i1 %4, label %bb3, label %bb2, !prof !17
+
+bb2:
+ call void @foo()
+ br label %bb3
+
+bb3:
+ ret void
+}
+
!llvm.module.flags = !{!0}
!0 = !{i32 1, !"ProfileSummary", !1}
!1 = !{!2, !3, !4, !5, !6, !7, !8, !9}
@@ -2482,6 +2507,7 @@ end:
!14 = !{!"function_entry_count", i64 100}
!15 = !{!"branch_weights", i32 0, i32 1}
!16 = !{!"branch_weights", i32 1, i32 1}
+!17 = !{!"branch_weights", i32 0, i32 0}
; CHECK: !15 = !{!"branch_weights", i32 1000, i32 0}
; CHECK: !16 = !{!"branch_weights", i32 0, i32 1}
; CHECK: !17 = !{!"branch_weights", i32 1, i32 1}
OpenPOWER on IntegriCloud