forked from OSchip/llvm-project
Process BUNDLE in tail duplication
When tail duplication estimates a size of tail it uses instruction count. Account for a number of instrictions in a bundle too. Differential Revision: https://reviews.llvm.org/D72783
This commit is contained in:
parent
44560762c6
commit
8b417dd3d6
|
@ -625,7 +625,9 @@ bool TailDuplicator::shouldTailDuplicate(bool IsSimple,
|
||||||
if (PreRegAlloc && MI.isCall())
|
if (PreRegAlloc && MI.isCall())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!MI.isPHI() && !MI.isMetaInstruction())
|
if (MI.isBundle())
|
||||||
|
InstrCount += MI.getBundleSize();
|
||||||
|
else if (!MI.isPHI() && !MI.isMetaInstruction())
|
||||||
InstrCount += 1;
|
InstrCount += 1;
|
||||||
|
|
||||||
if (InstrCount > MaxDuplicateCount)
|
if (InstrCount > MaxDuplicateCount)
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
||||||
|
# RUN: llc -march=amdgcn -run-pass=block-placement -tail-dup-placement-threshold=2 -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
|
||||||
|
|
||||||
|
# Check that tail duplication correctly counts instructions in a bundle.
|
||||||
|
# The bundle below shall not be duplicated.
|
||||||
|
|
||||||
|
---
|
||||||
|
name: tail_dup_bundle
|
||||||
|
body: |
|
||||||
|
; GCN-LABEL: name: tail_dup_bundle
|
||||||
|
; GCN: bb.0:
|
||||||
|
; GCN: successors: %bb.2(0x80000000)
|
||||||
|
; GCN: bb.2:
|
||||||
|
; GCN: BUNDLE {
|
||||||
|
; GCN: S_NOP 0
|
||||||
|
; GCN: S_NOP 0
|
||||||
|
; GCN: }
|
||||||
|
; GCN: S_ENDPGM 0
|
||||||
|
; GCN: bb.1:
|
||||||
|
; GCN: successors: %bb.2(0x80000000)
|
||||||
|
; GCN: S_BRANCH %bb.2
|
||||||
|
bb.0:
|
||||||
|
successors: %bb.2(0x80000000)
|
||||||
|
|
||||||
|
S_BRANCH %bb.2
|
||||||
|
|
||||||
|
bb.1:
|
||||||
|
successors: %bb.2(0x80000000)
|
||||||
|
|
||||||
|
bb.2:
|
||||||
|
|
||||||
|
BUNDLE {
|
||||||
|
S_NOP 0
|
||||||
|
S_NOP 0
|
||||||
|
}
|
||||||
|
S_ENDPGM 0
|
||||||
|
|
||||||
|
...
|
Loading…
Reference in New Issue