[all-commits] [llvm/llvm-project] 60fda8: [ARM] Add a pass that re-arranges blocks when ther...

Sam Tebbs via All-commits all-commits at lists.llvm.org
Wed Jan 13 09:33:20 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 60fda8ebb6dc4e2ac1cc181c0ab8019c4309cb22
      https://github.com/llvm/llvm-project/commit/60fda8ebb6dc4e2ac1cc181c0ab8019c4309cb22
  Author: Sam Tebbs <samuel.tebbs at arm.com>
  Date:   2021-01-13 (Wed, 13 Jan 2021)

  Changed paths:
    M llvm/lib/Target/ARM/ARM.h
    A llvm/lib/Target/ARM/ARMBlockPlacement.cpp
    M llvm/lib/Target/ARM/ARMTargetMachine.cpp
    M llvm/lib/Target/ARM/CMakeLists.txt
    M llvm/test/CodeGen/ARM/O3-pipeline.ll
    A llvm/test/CodeGen/Thumb2/block-placement.mir

  Log Message:
  -----------
  [ARM] Add a pass that re-arranges blocks when there is a backwards WLS branch

Blocks can be laid out such that a t2WhileLoopStart branches backwards. This is forbidden by the architecture and so it fails to be converted into a low-overhead loop. This new pass checks for these cases and moves the target block, fixing any fall-through that would then be broken.

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




More information about the All-commits mailing list