[all-commits] [llvm/llvm-project] 91fb9e: [ARM] Remove dead instructions before creating VPT...

David Green via All-commits all-commits at lists.llvm.org
Tue Dec 8 06:10:15 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 91fb9eac0b562cdfdc6b677f8ab2ee67f1ae1a77
      https://github.com/llvm/llvm-project/commit/91fb9eac0b562cdfdc6b677f8ab2ee67f1ae1a77
  Author: David Green <david.green at arm.com>
  Date:   2020-12-08 (Tue, 08 Dec 2020)

  Changed paths:
    M llvm/lib/Target/ARM/MVEVPTBlockPass.cpp
    M llvm/test/CodeGen/Thumb2/mve-vpt-3-blocks-kill-vpr.mir

  Log Message:
  -----------
  [ARM] Remove dead instructions before creating VPT block bundles

We remove VPNOT instructions in VPT blocks as we create them, turning
them into else predicates. We don't remove the dead instructions until
after the block has been created though. Because the VPNOT will have
killed the vpr register it used, this makes finalizeBundle add internal
flags to the vpr uses of any instructions after the VPNOT. These
incorrect flags can then confuse what is alive and what is not, leading
to machine verifier problems.

This patch removes them earlier instead, before the bundle is finalized
so that kill flags remain valid.

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




More information about the All-commits mailing list