diff options
Diffstat (limited to 'mlir/lib/Target/LLVMIR/ModuleImport.cpp')
-rw-r--r-- | mlir/lib/Target/LLVMIR/ModuleImport.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/mlir/lib/Target/LLVMIR/ModuleImport.cpp b/mlir/lib/Target/LLVMIR/ModuleImport.cpp index 7ea82f6..2d3c0ef 100644 --- a/mlir/lib/Target/LLVMIR/ModuleImport.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleImport.cpp @@ -2213,7 +2213,8 @@ void ModuleImport::convertParameterAttributes(llvm::Function *func, } void ModuleImport::convertParameterAttributes(llvm::CallBase *call, - CallOpInterface callOp, + ArrayAttr &argsAttr, + ArrayAttr &resAttr, OpBuilder &builder) { llvm::AttributeList llvmAttrs = call->getAttributes(); SmallVector<llvm::AttributeSet> llvmArgAttrsSet; @@ -2233,14 +2234,23 @@ void ModuleImport::convertParameterAttributes(llvm::CallBase *call, SmallVector<DictionaryAttr> argAttrs; for (auto &llvmArgAttrs : llvmArgAttrsSet) argAttrs.emplace_back(convertParameterAttribute(llvmArgAttrs, builder)); - callOp.setArgAttrsAttr(getArrayAttr(argAttrs)); + argsAttr = getArrayAttr(argAttrs); } llvm::AttributeSet llvmResAttr = llvmAttrs.getRetAttrs(); if (!llvmResAttr.hasAttributes()) return; DictionaryAttr resAttrs = convertParameterAttribute(llvmResAttr, builder); - callOp.setResAttrsAttr(getArrayAttr({resAttrs})); + resAttr = getArrayAttr({resAttrs}); +} + +void ModuleImport::convertParameterAttributes(llvm::CallBase *call, + CallOpInterface callOp, + OpBuilder &builder) { + ArrayAttr argsAttr, resAttr; + convertParameterAttributes(call, argsAttr, resAttr, builder); + callOp.setArgAttrsAttr(argsAttr); + callOp.setResAttrsAttr(resAttr); } template <typename Op> |