[all-commits] [llvm/llvm-project] ce2452: [Test] Add test for unreachable backedge with dupl...

max-azul via All-commits all-commits at lists.llvm.org
Mon May 24 22:44:04 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ce245246043d3c4f12515b2c773ed6c9174345b5
      https://github.com/llvm/llvm-project/commit/ce245246043d3c4f12515b2c773ed6c9174345b5
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-05-25 (Tue, 25 May 2021)

  Changed paths:
    M llvm/test/Transforms/LoopDeletion/eval_first_iteration.ll

  Log Message:
  -----------
  [Test] Add test for unreachable backedge with duplicating predecessors


  Commit: 2531fd70d19aa5d61feb533bbdeee7717a4129eb
      https://github.com/llvm/llvm-project/commit/2531fd70d19aa5d61feb533bbdeee7717a4129eb
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-05-25 (Tue, 25 May 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopDeletion.cpp
    M llvm/test/Transforms/LoopDeletion/eval_first_iteration.ll
    M llvm/test/Transforms/LoopDeletion/noop-loops-with-subloops.ll
    M llvm/test/Transforms/LoopDeletion/zero-btc.ll

  Log Message:
  -----------
  [LoopDeletion] Break backedge if we can prove that the loop is exited on 1st iteration

This patch handles one particular case of one-iteration loops for which SCEV
cannot straightforwardly prove BECount = 1. The idea of the optimization is to
symbolically execute conditional branches on the 1st iteration, moving in topoligical
order, and only visiting blocks that may be reached on the first iteration. If we find out
that we never reach header via the latch, then the backedge can be broken.

Differential Revision: https://reviews.llvm.org/D102615
Reviewed By: reames


Compare: https://github.com/llvm/llvm-project/compare/90d784053f07...2531fd70d19a


More information about the All-commits mailing list