[all-commits] [llvm/llvm-project] 94cace: [ARM][LowOverheadLoops] Add checks for narrowing

Sam Parker via All-commits all-commits at lists.llvm.org
Tue Mar 24 01:44:36 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 94cacebccadf1e0821bdab6983d9f5251f73eab0
      https://github.com/llvm/llvm-project/commit/94cacebccadf1e0821bdab6983d9f5251f73eab0
  Author: Sam Parker <sam.parker at arm.com>
  Date:   2020-03-24 (Tue, 24 Mar 2020)

  Changed paths:
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp

  Log Message:
  -----------
  [ARM][LowOverheadLoops] Add checks for narrowing

Modify ValidateLiveOuts to track 'FalseLaneZeros' more precisely,
including checks on specific operations that can generate non-zeros
from zero values, e.g VMVN. We can then check that any instructions
that retain some information in their output register (all narrowing
instructions) that they only use and def registers that always have
zeros in their falsely predicated bytes, whether or not tail
predication happens.

Most of the logic remains the same, just the names of the data
structures and helpers have been renamed to reflect the change in
logic. The key change, apart from the opcode checkers, is that the
FalseZeros set now strictly contains only instructions which will
always generate zeros, and not instructions that could also have
their false bytes masked away later.

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




More information about the All-commits mailing list