[all-commits] [llvm/llvm-project] 40a3f7: [ARM][LowOverheadLoops] Merge a VCMP and the new V...

Sam Tebbs via All-commits all-commits at lists.llvm.org
Mon Nov 9 07:04:59 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 40a3f7e48d6bac6702357636a5f5c351415ed050
      https://github.com/llvm/llvm-project/commit/40a3f7e48d6bac6702357636a5f5c351415ed050
  Author: Sam Tebbs <samuel.tebbs at arm.com>
  Date:   2020-11-09 (Mon, 09 Nov 2020)

  Changed paths:
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/vcmp-vpst-combination.ll

  Log Message:
  -----------
  [ARM][LowOverheadLoops] Merge a VCMP and the new VPST into a VPT

There were cases where a VCMP and a VPST were merged even if the VCMP
didn't have the same defs of its operands as the VPST. This is fixed by
adding RDA checks for the defs. This however gave rise to cases where
the new VPST created would precede the un-merged VCMP and so would fail
a predicate mask assertion since the VCMP wasn't predicated. This was
solved by converting the VCMP to a VPT instead of inserting the new
VPST.

Differential Revision: https://reviews.llvm.org/D90461




More information about the All-commits mailing list