summaryrefslogtreecommitdiff
path: root/mlir
diff options
context:
space:
mode:
authorQuentin Colombet <quentin.colombet@gmail.com>2023-05-16 10:54:25 +0200
committerQuentin Colombet <quentin.colombet@gmail.com>2023-05-16 10:54:25 +0200
commitbba9209f1d198efc7e492f0e273fff0b0a5ef060 (patch)
treec9009f5f7b3990b6631b4323f5bc10341910317a /mlir
parentead8e9d7953e817c52fdfaf7196dfeb2199dab26 (diff)
downloadllvm-bba9209f1d198efc7e492f0e273fff0b0a5ef060.tar.gz
[MemRefToLLVM][NFC] Use early exit for the getter of the buffer ptr
Address review comment from https://reviews.llvm.org/D148947
Diffstat (limited to 'mlir')
-rw-r--r--mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp b/mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp
index df9dafc2d696..2c9580e42134 100644
--- a/mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp
+++ b/mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp
@@ -205,17 +205,19 @@ Value MemRefDescriptor::bufferPtr(OpBuilder &builder, Location loc,
auto [strides, offsetCst] = getStridesAndOffset(type);
Value ptr = alignedPtr(builder, loc);
- // Skip if offset is zero.
- if (offsetCst != 0) {
- Type indexType = converter.getIndexType();
- Value offsetVal =
- ShapedType::isDynamic(offsetCst)
- ? offset(builder, loc)
- : createIndexAttrConstant(builder, loc, indexType, offsetCst);
- Type elementType = converter.convertType(type.getElementType());
- ptr = builder.create<LLVM::GEPOp>(loc, ptr.getType(), elementType, ptr,
- offsetVal);
- }
+ // For zero offsets, we already have the base pointer.
+ if (offsetCst == 0)
+ return ptr;
+
+ // Otherwise add the offset to the aligned base.
+ Type indexType = converter.getIndexType();
+ Value offsetVal =
+ ShapedType::isDynamic(offsetCst)
+ ? offset(builder, loc)
+ : createIndexAttrConstant(builder, loc, indexType, offsetCst);
+ Type elementType = converter.convertType(type.getElementType());
+ ptr = builder.create<LLVM::GEPOp>(loc, ptr.getType(), elementType, ptr,
+ offsetVal);
return ptr;
}