[all-commits] [llvm/llvm-project] e27632: [ARM][LowOverheadLoops] Allow all MVE instrs.

Sam Parker via All-commits all-commits at lists.llvm.org
Tue Jan 14 04:04:16 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e27632c3026328e41b0d7dbf25631041e979a2f9
      https://github.com/llvm/llvm-project/commit/e27632c3026328e41b0d7dbf25631041e979a2f9
  Author: Sam Parker <sam.parker at arm.com>
  Date:   2020-01-14 (Tue, 14 Jan 2020)

  Changed paths:
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir
    M llvm/unittests/Target/ARM/MachineInstrTest.cpp

  Log Message:
  -----------
  [ARM][LowOverheadLoops] Allow all MVE instrs.

We have a whitelist of instructions that we allow when tail
predicating, since these are trivial ones that we've deemed need no
special handling. Now change ARMLowOverheadLoops to allow the
non-trivial instructions if they're contained within a valid VPT
block. Since a valid block is one that is predicated upon the VCTP so
we know that these non-trivial instructions will still behave as
expected once the implicit predication is used instead.

This also fixes a previous test failure.

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




More information about the All-commits mailing list