[PATCH] D100094: [ARM] This patch adds some simplifications to ARMBlockPlacement Pass.

Malhar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 8 02:58:07 PDT 2021


malharJ created this revision.
malharJ added reviewers: dmgreen, SjoerdMeijer.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
malharJ requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

It simplifies the logic by moving the preHeader above the target/loopExit,
instead of the other way round.

Since the loopExit is no longer being moved, directions of
any branches within/to it are unaffected.

While the Preheader is being moved,

- The only directional branch within the Preheader is the backwards WLS (which gets corrected by the move).
- Directional branches like LE to the Preheader cannot regress (go backward to forward) since the PreHeader is being moved backwards.
- The only remaining consideration (for now) is that a forward WLS to the Preheader should not become backwards. This is taken care of by the patch.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D100094

Files:
  llvm/lib/Target/ARM/ARMBlockPlacement.cpp
  llvm/test/CodeGen/Thumb2/block-placement.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100094.336046.patch
Type: text/x-patch
Size: 20960 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210408/42e3a283/attachment.bin>


More information about the llvm-commits mailing list