[all-commits] [llvm/llvm-project] ab6876: reland: [Local] Allow creating callbr with duplica...

Nikita Popov via All-commits all-commits at lists.llvm.org
Wed Aug 31 13:23:27 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ab6876a40d06e7a30a2ab7c7dcb3440672e201ea
      https://github.com/llvm/llvm-project/commit/ab6876a40d06e7a30a2ab7c7dcb3440672e201ea
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-08-31 (Wed, 31 Aug 2022)

  Changed paths:
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/test/CodeGen/AArch64/callbr-asm-obj-file.ll
    M llvm/test/Transforms/JumpThreading/callbr-edge-split.ll
    M llvm/test/Transforms/JumpThreading/pr46857-callbr.ll
    M llvm/test/Transforms/SimplifyCFG/callbr-destinations.ll
    M llvm/test/Transforms/SimplifyCFG/jump-threading.ll

  Log Message:
  -----------
  reland: [Local] Allow creating callbr with duplicate successors

Since D129288, callbr is allowed to have duplicate successors. This patch removes a limitation which prevents optimizations from actually producing such callbrs.

This is probably the riskiest of all the recent callbr changes, because code with incorrect assumptions might be lurking somewhere. I fixed the one case I encountered ahead of time in https://github.com/llvm/llvm-project/commit/8201e3ef5c84561260218bc041209611aac690e3.

Reviewed By: nickdesaulniers

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

Originally landed as
commit 08860f525a23 ("[Local] Allow creating callbr with duplicate successors")

Reverted in
commit 1cf6b93df168 ("Revert "[Local] Allow creating callbr with duplicate successors"")




More information about the All-commits mailing list