[all-commits] [llvm/llvm-project] 42350c: [ARM][MVE] Tail Predicate IsSafeToRemove

Sam Parker via All-commits all-commits at lists.llvm.org
Fri Jan 17 05:19:47 PST 2020


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

  Changed paths:
    M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
    M llvm/lib/CodeGen/ReachingDefAnalysis.cpp
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.h
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
    M llvm/lib/Target/ARM/Utils/ARMBaseInfo.h
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update2.mir
    R llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update3.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-use-after.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir
    A llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmaxmin_vpred_r.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir

  Log Message:
  -----------
  [ARM][MVE] Tail Predicate IsSafeToRemove

Introduce a method to walk through use-def chains to decide whether
it's possible to remove a given instruction and its users. These
instructions are then stored in a set until the end of the transform
when they're erased. This is now used to perform checks on the
iteration count (LoopDec chain), element count (VCTP chain) and the
possibly redundant iteration count.

As well as being able to remove chains of instructions, we know also
check that the sub feeding the vctp is producing the expected value.

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




More information about the All-commits mailing list