Files
clang-p2996/llvm/test/Transforms/SampleProfile/pseudo-probe-dangle3.ll
wlei 6539a80bc9 [CSSPGO] Avoid deleting probe instruction in FoldValueComparisonIntoPredecessors
This change tries to fix a place missing `moveAndDanglePseudoProbes `. In FoldValueComparisonIntoPredecessors, it folds the BB into predecessors and then marked the BB unreachable. However, the original logic from the BB is still alive, deleting the probe will mislead the SampleLoader mark it as zero count sample.

Reviewed By: hoy, wenlei

Differential Revision: https://reviews.llvm.org/D102721
2021-05-19 13:39:05 -07:00

38 lines
1.4 KiB
LLVM

; Test after FoldValueComparisonIntoPredecessors, one dangling probe is generated
; RUN: opt -S -passes='pseudo-probe,simplifycfg' < %s | FileCheck %s
; CHECK: if.end80: ; preds = %if.end
; CHECK-NEXT: call void @llvm.pseudoprobe(i64 -2281696412744416103, i64 3, i32 0, i64 -1)
; CHECK-NEXT: call void @llvm.pseudoprobe(i64 -2281696412744416103, i64 4, i32 2, i64 -1)
define dso_local i32 @readCBPandCoeffsFromNAL(i1 %c, i32 %x, i32 %y) local_unnamed_addr {
;
if.end:
br i1 %c, label %if.end80, label %if.then64
if.then64: ; preds = %if.end
ret i32 %y
if.end80: ; preds = %if.end
switch i32 %x, label %lor.lhs.false89 [
i32 10, label %if.end172237
i32 14, label %if.end172237
i32 9, label %if.end172
]
lor.lhs.false89: ; preds = %lor.lhs.false89, %if.end80
%cmp91 = icmp eq i32 %x, 12
br i1 %cmp91, label %if.end172, label %lor.lhs.false89
if.end172: ; preds = %lor.lhs.false89, %if.end80
br label %if.end239
if.end172237: ; preds = %if.end80, %if.end80
br label %if.end239
if.end239: ; preds = %if.end172237, %if.end172
%cbp.0 = phi i32 [ 1, %if.end172237 ], [ 0, %if.end172 ]
ret i32 %cbp.0
}