const LowerToLLVMOptions &getOptions() const { return options; }
- /// Promote the LLVM struct representation of all MemRef descriptors to stack
- /// and use pointers to struct to avoid the complexity of the
- /// platform-specific C/C++ ABI lowering related to struct argument passing.
- SmallVector<Value, 4> promoteMemRefDescriptors(Location loc,
- ValueRange opOperands,
- ValueRange operands,
- OpBuilder &builder);
+ /// Promote the LLVM representation of all operands including promoting MemRef
+ /// descriptors to stack and use pointers to struct to avoid the complexity
+ /// of the platform-specific C/C++ ABI lowering related to struct argument
+ /// passing.
+ SmallVector<Value, 4> promoteOperands(Location loc, ValueRange opOperands,
+ ValueRange operands,
+ OpBuilder &builder);
/// Promote the LLVM struct representation of one MemRef descriptor to stack
/// and use pointer to struct to avoid the complexity of the platform-specific
return failure();
}
- auto promoted = this->typeConverter.promoteMemRefDescriptors(
+ auto promoted = this->typeConverter.promoteOperands(
op->getLoc(), /*opOperands=*/op->getOperands(), operands, rewriter);
auto newOp = rewriter.create<LLVM::CallOp>(op->getLoc(), packedResult,
promoted, op->getAttrs());
return allocated;
}
-SmallVector<Value, 4>
-LLVMTypeConverter::promoteMemRefDescriptors(Location loc, ValueRange opOperands,
- ValueRange operands,
- OpBuilder &builder) {
+SmallVector<Value, 4> LLVMTypeConverter::promoteOperands(Location loc,
+ ValueRange opOperands,
+ ValueRange operands,
+ OpBuilder &builder) {
SmallVector<Value, 4> promotedOperands;
promotedOperands.reserve(operands.size());
for (auto it : llvm::zip(opOperands, operands)) {