[llvm] 03ce084 - Add profile count. Regenerate check lines. NFC

Anna Thomas via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 28 12:34:17 PDT 2021


Author: Anna Thomas
Date: 2021-09-28T15:33:49-04:00
New Revision: 03ce0841daf8386ed6950c73b9a66ddc3fe93e34

URL: https://github.com/llvm/llvm-project/commit/03ce0841daf8386ed6950c73b9a66ddc3fe93e34
DIFF: https://github.com/llvm/llvm-project/commit/03ce0841daf8386ed6950c73b9a66ddc3fe93e34.diff

LOG: Add profile count. Regenerate check lines. NFC

Function profile counts added to test cases. Regenerated test lines for
loop predication test.

Added: 
    

Modified: 
    llvm/test/Transforms/LoopPredication/profitability.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/LoopPredication/profitability.ll b/llvm/test/Transforms/LoopPredication/profitability.ll
index 7451aa1fcc9b3..942e0fea2a777 100644
--- a/llvm/test/Transforms/LoopPredication/profitability.ll
+++ b/llvm/test/Transforms/LoopPredication/profitability.ll
@@ -1,5 +1,4 @@
 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -S -loop-predication -loop-predication-skip-profitability-checks=false < %s 2>&1 | FileCheck %s
 ; RUN: opt -S -loop-predication-skip-profitability-checks=false -passes='require<scalar-evolution>,require<branch-prob>,loop-mssa(loop-predication)' -verify-memoryssa < %s 2>&1 | FileCheck %s
 
 ; latch block exits to a speculation block. BPI already knows (without prof
@@ -7,7 +6,7 @@
 ; taken. So we do not predicate this loop using that coarse latch check.
 ; LatchExitProbability: 0x04000000 / 0x80000000 = 3.12%
 ; ExitingBlockProbability: 0x7ffa572a / 0x80000000 = 99.98%
-define i64 @donot_predicate(i64* nocapture readonly %arg, i32 %length, i64* nocapture readonly %arg2, i64* nocapture readonly %n_addr, i64 %i) {
+define i64 @donot_predicate(i64* nocapture readonly %arg, i32 %length, i64* nocapture readonly %arg2, i64* nocapture readonly %n_addr, i64 %i) !prof !21 {
 ; CHECK-LABEL: @donot_predicate(
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[LENGTH_EXT:%.*]] = zext i32 [[LENGTH:%.*]] to i64
@@ -20,7 +19,7 @@ define i64 @donot_predicate(i64* nocapture readonly %arg, i32 %length, i64* noca
 ; CHECK-NEXT:    call void (i1, ...) @llvm.experimental.guard(i1 [[WITHIN_BOUNDS]], i32 9) [ "deopt"() ]
 ; CHECK-NEXT:    [[INNERCMP:%.*]] = icmp eq i64 [[J2]], [[N_PRE]]
 ; CHECK-NEXT:    [[J_NEXT]] = add nuw nsw i64 [[J2]], 1
-; CHECK-NEXT:    br i1 [[INNERCMP]], label [[LATCH]], label [[EXIT:%.*]], !prof !0
+; CHECK-NEXT:    br i1 [[INNERCMP]], label [[LATCH]], label [[EXIT:%.*]], !prof [[PROF1:![0-9]+]]
 ; CHECK:       Latch:
 ; CHECK-NEXT:    [[SPECULATE_TRIP_COUNT:%.*]] = icmp ult i64 [[J_NEXT]], 1048576
 ; CHECK-NEXT:    br i1 [[SPECULATE_TRIP_COUNT]], label [[HEADER]], label [[DEOPT:%.*]]
@@ -63,7 +62,7 @@ exit:                                             ; preds = %Header
 
 ; predicate loop since there's no profile information and BPI concluded all
 ; exiting blocks have same probability of exiting from loop.
-define i64 @predicate(i64* nocapture readonly %arg, i32 %length, i64* nocapture readonly %arg2, i64* nocapture readonly %n_addr, i64 %i) {
+define i64 @predicate(i64* nocapture readonly %arg, i32 %length, i64* nocapture readonly %arg2, i64* nocapture readonly %n_addr, i64 %i) !prof !21 {
 ; CHECK-LABEL: @predicate(
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[LENGTH_EXT:%.*]] = zext i32 [[LENGTH:%.*]] to i64
@@ -120,7 +119,7 @@ exit:                                             ; preds = %Header
 ; the loop is the header exiting block (not the latch block). So do not predicate.
 ; LatchExitProbability: 0x000020e1 / 0x80000000 = 0.00%
 ; ExitingBlockProbability: 0x7ffcbb86 / 0x80000000 = 99.99%
-define i64 @donot_predicate_prof(i64* nocapture readonly %arg, i32 %length, i64* nocapture readonly %arg2, i64* nocapture readonly %n_addr, i64 %i) {
+define i64 @donot_predicate_prof(i64* nocapture readonly %arg, i32 %length, i64* nocapture readonly %arg2, i64* nocapture readonly %n_addr, i64 %i) !prof !21 {
 ; CHECK-LABEL: @donot_predicate_prof(
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[LENGTH_EXT:%.*]] = zext i32 [[LENGTH:%.*]] to i64
@@ -133,10 +132,10 @@ define i64 @donot_predicate_prof(i64* nocapture readonly %arg, i32 %length, i64*
 ; CHECK-NEXT:    call void (i1, ...) @llvm.experimental.guard(i1 [[WITHIN_BOUNDS]], i32 9) [ "deopt"() ]
 ; CHECK-NEXT:    [[INNERCMP:%.*]] = icmp eq i64 [[J2]], [[N_PRE]]
 ; CHECK-NEXT:    [[J_NEXT]] = add nuw nsw i64 [[J2]], 1
-; CHECK-NEXT:    br i1 [[INNERCMP]], label [[LATCH]], label [[EXIT:%.*]], !prof !1
+; CHECK-NEXT:    br i1 [[INNERCMP]], label [[LATCH]], label [[EXIT:%.*]], !prof [[PROF2:![0-9]+]]
 ; CHECK:       Latch:
 ; CHECK-NEXT:    [[SPECULATE_TRIP_COUNT:%.*]] = icmp ult i64 [[J_NEXT]], 1048576
-; CHECK-NEXT:    br i1 [[SPECULATE_TRIP_COUNT]], label [[HEADER]], label [[EXITLATCH:%.*]], !prof !2
+; CHECK-NEXT:    br i1 [[SPECULATE_TRIP_COUNT]], label [[HEADER]], label [[EXITLATCH:%.*]], !prof [[PROF3:![0-9]+]]
 ; CHECK:       exitLatch:
 ; CHECK-NEXT:    ret i64 1
 ; CHECK:       exit:
@@ -175,3 +174,4 @@ declare void @llvm.experimental.guard(i1, ...)
 
 !1 = !{!"branch_weights", i32 104, i32 1042861}
 !2 = !{!"branch_weights", i32 255129, i32 1}
+!21 = !{!"function_entry_count", i64 20000}


        


More information about the llvm-commits mailing list