[mlir][llvm] Verify consistency of llvm.resume and llvm.landingpad types
authorVictor Perez <victor.perez@codeplay.com>
Tue, 28 Mar 2023 15:19:29 +0000 (16:19 +0100)
committerVictor Perez <victor.perez@codeplay.com>
Tue, 28 Mar 2023 15:22:52 +0000 (16:22 +0100)
commit478bd0735fc094d3af37e9791df5118a402ae7a7
tree0fe021165a11da9137afc719e233b33a5b3594c8
parent09c6c7bea1403f6059508e2ec81f2fcffef8f775
[mlir][llvm] Verify consistency of llvm.resume and llvm.landingpad types

Following the steps of the LLVM verifier
(https://github.com/llvm/llvm-project/blob/b2c48559c882fd558f91e471c4d23ea7b0c6e718/llvm/lib/IR/Verifier.cpp#L4195),
checks in llvm.func verifier are added to ensure consistency of
llvm.landingpad operations' result types and llvm.resume operations'
input types.

As in LLVM, we will allow llvm.resume operations with input values
defined by operations other than llvm.landingpad.

Signed-off-by: Victor Perez <victor.perez@codeplay.com>
Reviewed By: gysit, Dinistro

Differential Revision: https://reviews.llvm.org/D146968
mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
mlir/test/Dialect/LLVMIR/invalid-typed-pointers.mlir
mlir/test/Dialect/LLVMIR/invalid.mlir