[PATCH] D72783: Process BUNDLE in tail duplication
Stanislav Mekhanoshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 15 16:03:34 PST 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG8b417dd3d6c6: Process BUNDLE in tail duplication (authored by rampitec).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D72783/new/
https://reviews.llvm.org/D72783
Files:
llvm/lib/CodeGen/TailDuplicator.cpp
llvm/test/CodeGen/AMDGPU/tail-dup-bundle.mir
Index: llvm/test/CodeGen/AMDGPU/tail-dup-bundle.mir
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/AMDGPU/tail-dup-bundle.mir
@@ -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
+
+...
Index: llvm/lib/CodeGen/TailDuplicator.cpp
===================================================================
--- llvm/lib/CodeGen/TailDuplicator.cpp
+++ llvm/lib/CodeGen/TailDuplicator.cpp
@@ -625,7 +625,9 @@
if (PreRegAlloc && MI.isCall())
return false;
- if (!MI.isPHI() && !MI.isMetaInstruction())
+ if (MI.isBundle())
+ InstrCount += MI.getBundleSize();
+ else if (!MI.isPHI() && !MI.isMetaInstruction())
InstrCount += 1;
if (InstrCount > MaxDuplicateCount)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72783.238384.patch
Type: text/x-patch
Size: 1613 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200116/8614b41f/attachment-0001.bin>
More information about the llvm-commits
mailing list