[PATCH] D71701: [AArch64] Peephole optimization. Merge AND and TST instructions

Pavel Kosov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 19 05:46:57 PST 2019


kpdev42 created this revision.
kpdev42 added reviewers: eli.friedman, t.p.northover, bmakam, reames.
kpdev42 added a project: LLVM.
Herald added subscribers: llvm-commits, hiraditya, kristof.beyls.

In some cases Clang does not perform merging of instructions AND and TST
This patch adds such merge if next conditions are satisfied:

1. AND and TST are in same BB
2. AND and TST use the same operands
3. Conditional flags are not used between AND and ANDS

Short discussion on mailing list
http://llvm.1065342.n5.nabble.com/llvm-dev-ARM-Peephole-optimization-instructions-tst-add-tp133109.html


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D71701

Files:
  llvm/include/llvm/CodeGen/TargetInstrInfo.h
  llvm/lib/CodeGen/PeepholeOptimizer.cpp
  llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
  llvm/lib/Target/AArch64/AArch64InstrInfo.h
  llvm/test/CodeGen/AArch64/peephole-and-tst.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71701.234705.patch
Type: text/x-patch
Size: 11677 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191219/da71029a/attachment.bin>


More information about the llvm-commits mailing list