From: Quentin Colombet Date: Tue, 16 May 2023 08:54:25 +0000 (+0200) Subject: [MemRefToLLVM][NFC] Use early exit for the getter of the buffer ptr X-Git-Tag: upstream/17.0.6~8391 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bba9209f1d198efc7e492f0e273fff0b0a5ef060;p=platform%2Fupstream%2Fllvm.git [MemRefToLLVM][NFC] Use early exit for the getter of the buffer ptr Address review comment from https://reviews.llvm.org/D148947 --- diff --git a/mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp b/mlir/lib/Conversion/LLVMCommon/MemRefBuilder.cpp index df9dafc..2c9580e 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(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(loc, ptr.getType(), elementType, ptr, + offsetVal); return ptr; }