[PATCH] D113094: [ARM] Move VPTBlock pass after post-ra scheduling

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 3 03:08:46 PDT 2021


dmgreen created this revision.
dmgreen added reviewers: SjoerdMeijer, samtebbs, ostannard, simon_tatham.
Herald added subscribers: hiraditya, kristof.beyls, qcolombet.
dmgreen requested review of this revision.
Herald added a project: LLVM.

Currently when tail predicating loops, vpt blocks need to be created with the vctp predicate in case we need to revert to non-tail predicated form. This has the unfortunate side effect of severely messing up post-ra scheduling at times as the instructions are already stuck in vpt blocks, not allowed to be independently scheduled.

This patch addresses that by just moving the creating of VPT blocks later in the pipeline, after post-ra scheduling has been performed. This allows more optimal scheduling post-ra before the vpt blocks are created, leading to more optimal tail predicated loops.


https://reviews.llvm.org/D113094

Files:
  llvm/lib/Target/ARM/ARMTargetMachine.cpp
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/arm_cmplx_dot_prod_f32.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/reductions.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/spillingmove.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-disabled-in-loloops.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/unpredload.ll
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/varying-outer-2d-reduction.ll
  llvm/test/CodeGen/Thumb2/active_lane_mask.ll
  llvm/test/CodeGen/Thumb2/mve-blockplacement.ll
  llvm/test/CodeGen/Thumb2/mve-float16regloops.ll
  llvm/test/CodeGen/Thumb2/mve-gather-increment.ll
  llvm/test/CodeGen/Thumb2/mve-gather-ind16-scaled.ll
  llvm/test/CodeGen/Thumb2/mve-gather-scatter-tailpred.ll
  llvm/test/CodeGen/Thumb2/mve-masked-ldst-offset.ll
  llvm/test/CodeGen/Thumb2/mve-masked-ldst-postinc.ll
  llvm/test/CodeGen/Thumb2/mve-masked-ldst-preinc.ll
  llvm/test/CodeGen/Thumb2/mve-postinc-dct.ll
  llvm/test/CodeGen/Thumb2/mve-pred-constfold.ll
  llvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll
  llvm/test/CodeGen/Thumb2/mve-satmul-loops.ll
  llvm/test/CodeGen/Thumb2/mve-scatter-increment.ll
  llvm/test/CodeGen/Thumb2/mve-tailpred-loopinvariant.ll
  llvm/test/CodeGen/Thumb2/mve-vctp.ll
  llvm/test/CodeGen/Thumb2/mve-vecreduce-addpred.ll
  llvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll
  llvm/test/CodeGen/Thumb2/mve-vmaxnma-tailpred.ll
  llvm/test/CodeGen/Thumb2/mve-vmovlloop.ll
  llvm/test/CodeGen/Thumb2/mve-zext-masked-load.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D113094.384371.patch
Type: text/x-patch
Size: 124618 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211103/15006792/attachment-0001.bin>


More information about the llvm-commits mailing list