forked from OSchip/llvm-project
[CodeGen] fix broken successor probability in MBB dump
When printing successor probabilities for a MBB, a human readable value is sometimes shown as 200.0%. The human readable output is based on getProbabilityIterator, which returns 0xFFFFFFFF for getNumerator() and 0x80000000 for getDenominator() for unknown BranchProbability. By using getSuccProbability as we do for the non-human readable part, we can avoid this problem. Differential Revision: https://reviews.llvm.org/D52605 llvm-svn: 343297
This commit is contained in:
parent
73d18aa028
commit
69bfa40200
|
@ -362,7 +362,7 @@ void MachineBasicBlock::print(raw_ostream &OS, ModuleSlotTracker &MST,
|
|||
// Print human readable probabilities as comments.
|
||||
OS << "; ";
|
||||
for (auto I = succ_begin(), E = succ_end(); I != E; ++I) {
|
||||
const BranchProbability &BP = *getProbabilityIterator(I);
|
||||
const BranchProbability &BP = getSuccProbability(I);
|
||||
if (I != succ_begin())
|
||||
OS << ", ";
|
||||
OS << printMBBReference(**I) << '('
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
; RUN: llc < %s 2>&1 -print-after=machine-scheduler -mtriple=x86_64-unknown-unknown | FileCheck %s
|
||||
|
||||
; expected MBB dump output
|
||||
; # *** IR Dump After Machine Instruction Scheduler ***:
|
||||
; # Machine code for function foo: NoPHIs, TracksLiveness
|
||||
;
|
||||
; 0B bb.0 (%ir-block.0):
|
||||
; successors: %bb.1(0x80000000); %bb.1(100.00%)
|
||||
;
|
||||
; 16B bb.1.next:
|
||||
; ; predecessors: %bb.0
|
||||
|
||||
; previously, it was broken as
|
||||
; successors: %bb.1(0x80000000); %bb.1(200.00%)
|
||||
|
||||
define void @foo(){
|
||||
; CHECK: IR Dump After Machine Instruction Scheduler
|
||||
; CHECK: bb.0
|
||||
; CHECK: 100.0
|
||||
; CHECK: bb.1
|
||||
br label %next
|
||||
|
||||
next:
|
||||
ret void
|
||||
}
|
Loading…
Reference in New Issue