[clang] [CIR] Upstream cir.call with scalar arguments (PR #136810)
Bruno Cardoso Lopes via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 24 10:16:46 PDT 2025
================
@@ -21,9 +21,24 @@ let cppNamespace = "::cir" in {
// The CIRCallOpInterface must be used instead of CallOpInterface when looking
// at arguments and other bits of CallOp. This creates a level of abstraction
// that's useful for handling indirect calls and other details.
- def CIRCallOpInterface : OpInterface<"CIRCallOpInterface", []> {
+ def CIRCallOpInterface : OpInterface<"CIRCallOpInterface", [CallOpInterface]> {
// Currently we don't have any methods defined in CIRCallOpInterface. We'll
// add more methods as the upstreaming proceeds.
+ let methods = [
+ InterfaceMethod<"", "mlir::Operation::operand_iterator",
+ "arg_operand_begin", (ins)>,
+ InterfaceMethod<"", "mlir::Operation::operand_iterator",
+ "arg_operand_end", (ins)>,
----------------
bcardosolopes wrote:
> any reason why this is part of interface and not just normal method on ops as is in func::CallOp?
My recollection is that there was a problem with inherited interfaces and that wouldn't work. All we need here is the ability to override those differently from the inherited interface. If it works without the explicit declaration here I'm all for it!
https://github.com/llvm/llvm-project/pull/136810
More information about the cfe-commits
mailing list