[all-commits] [llvm/llvm-project] 74f0f9: [LICM] Create LoopNest Invariant Code Motion (LNIC...

uint256_t via All-commits all-commits at lists.llvm.org
Mon Jul 19 08:32:37 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 74f0f9a455c55101c0cb2ab36df5abae134fd78d
      https://github.com/llvm/llvm-project/commit/74f0f9a455c55101c0cb2ab36df5abae134fd78d
  Author: maekawatoshiki <konndennsa at gmail.com>
  Date:   2021-07-20 (Tue, 20 Jul 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/Scalar/LICM.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/Scalar/LICM.cpp
    A llvm/test/Transforms/LICM/lnicm.ll

  Log Message:
  -----------
  [LICM] Create LoopNest Invariant Code Motion (LNICM) pass

This patch adds a new pass called LNICM which is a LoopNest version of LICM and a test case to show how LNICM works.
Basically, LNICM only hoists invariants out of loop nest (not a loop) to keep/make perfect loop nest. This enables later optimizations that require perfect loop nest.

Reviewed By: Whitney

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




More information about the All-commits mailing list