[PATCH] D74524: [Scheduling] Improve memory ops cluster preparation

Qiu Chaofan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 12 21:55:23 PST 2020


qiucf created this revision.
qiucf added reviewers: PowerPC, fhahn, evandro, arsenm.
Herald added subscribers: llvm-commits, kerbowa, arphaman, javed.absar, hiraditya, nhaehnle, wdng, jvesely, MatzeB.
Herald added a project: LLVM.
qiucf edited the summary of this revision.

SUnits in `ScheduleDAGInstrs` will be divided into several groups by their ctrl pred node number. Scheduler tries to build possible cluster edges inside each group. However, there're some units with no ctrl preds.

This patch

1. Add these preds to each group before `clusterNeighboringMemOps`, to catch more cluster opportunities.
2. Add a bitmap to mark units already clustered, remove them before `clusterNeighboringMemOps`

This impacts several test cases, by comparing scheduling log, we can find more cluster edges added and they are scheduled together.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74524

Files:
  llvm/lib/CodeGen/MachineScheduler.cpp
  llvm/test/CodeGen/AArch64/overeager_mla_fusing.ll
  llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.atomic.inc.ll
  llvm/test/CodeGen/AMDGPU/bitcast-vector-extract.ll
  llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
  llvm/test/CodeGen/AMDGPU/captured-frame-index.ll
  llvm/test/CodeGen/AMDGPU/chain-hi-to-lo.ll
  llvm/test/CodeGen/AMDGPU/extract_vector_elt-i8.ll
  llvm/test/CodeGen/AMDGPU/fast-unaligned-load-store.global.ll
  llvm/test/CodeGen/AMDGPU/global-saddr.ll
  llvm/test/CodeGen/AMDGPU/sched-assert-onlydbg-value-empty-region.mir
  llvm/test/CodeGen/AMDGPU/sign_extend.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74524.244333.patch
Type: text/x-patch
Size: 21303 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200213/04ef3956/attachment-0001.bin>


More information about the llvm-commits mailing list