[llvm][CallBrPrepare] add llvm.callbr.landingpad intrinsic
authorNick Desaulniers <ndesaulniers@google.com>
Fri, 17 Feb 2023 01:46:47 +0000 (17:46 -0800)
committerNick Desaulniers <ndesaulniers@google.com>
Fri, 17 Feb 2023 01:58:33 +0000 (17:58 -0800)
commit094190c2f52900d9d5d26dba9522e70030cc00a1
tree5008b8896e237d29ae6b441d26b66ed4202b9f01
parent0a39af0eb72d0fb1cce592aa5e5a1e3bd08110be
[llvm][CallBrPrepare] add llvm.callbr.landingpad intrinsic

Insert a new intrinsic call after splitting critical edges, and verify
it. Later commits will update the SSA values to use this new value along
indirect branches rather than the callbr's value, and have SelectionDAG
consume this new value.

Part 2b of
https://discourse.llvm.org/t/rfc-syncing-asm-goto-with-outputs-with-gcc/65453/8.

Reviewed By: efriedma, jyknight

Differential Revision: https://reviews.llvm.org/D139883
llvm/include/llvm/IR/Intrinsics.td
llvm/lib/CodeGen/CallBrPrepare.cpp
llvm/lib/IR/Verifier.cpp
llvm/test/CodeGen/AArch64/callbr-prepare.ll
llvm/test/Transforms/SimplifyCFG/callbr-destinations.ll
llvm/test/Verifier/callbr.ll