[flang-commits] [flang] [FIR] add a fir.shape_extents operation (PR #199361)
via flang-commits
flang-commits at lists.llvm.org
Sat May 23 09:48:46 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp -- flang/lib/Optimizer/CodeGen/CodeGen.cpp flang/lib/Optimizer/CodeGen/TypeConverter.cpp flang/lib/Optimizer/Dialect/FIROps.cpp flang/lib/Optimizer/Transforms/FIRToMemRef.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/flang/lib/Optimizer/CodeGen/CodeGen.cpp b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
index 523ca462d..f71455aad 100644
--- a/flang/lib/Optimizer/CodeGen/CodeGen.cpp
+++ b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
@@ -4597,15 +4597,16 @@ struct ShapeOpConversion : public fir::FIROpConversion<fir::ShapeOp> {
for (auto [i, extent] : llvm::enumerate(adaptor.getExtents())) {
mlir::Value extentI64 =
integerCast(loc, rewriter, i64Ty, extent, /*fold=*/true);
- structVal =
- mlir::LLVM::InsertValueOp::create(rewriter, loc, structVal, extentI64, i);
+ structVal = mlir::LLVM::InsertValueOp::create(rewriter, loc, structVal,
+ extentI64, i);
}
rewriter.replaceOp(op, structVal);
return mlir::success();
}
};
-struct ShapeExtentsOpConversion : public fir::FIROpConversion<fir::ShapeExtentsOp> {
+struct ShapeExtentsOpConversion
+ : public fir::FIROpConversion<fir::ShapeExtentsOp> {
using FIROpConversion::FIROpConversion;
llvm::LogicalResult
@@ -4619,8 +4620,8 @@ struct ShapeExtentsOpConversion : public fir::FIROpConversion<fir::ShapeExtentsO
mlir::Value llvmShape = adaptor.getShape();
llvm::SmallVector<mlir::Value> results;
for (unsigned i = 0; i < op.getNumResults(); ++i) {
- mlir::Value extentI64 =
- mlir::LLVM::ExtractValueOp::create(rewriter, loc, i64Ty, llvmShape, i);
+ mlir::Value extentI64 = mlir::LLVM::ExtractValueOp::create(
+ rewriter, loc, i64Ty, llvmShape, i);
mlir::Type resultTy = convertType(op.getExtents()[i].getType());
results.push_back(
integerCast(loc, rewriter, resultTy, extentI64, /*fold=*/true));
diff --git a/flang/lib/Optimizer/Transforms/FIRToMemRef.cpp b/flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
index 3f2a049d8..c33a2103a 100644
--- a/flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
+++ b/flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
@@ -339,14 +339,14 @@ bool FIRToMemRef::materializeShapeExtents(
if (auto extentsOp = shapeVal.getDefiningOp<fir::ShapeExtentsOp>()) {
shapeVec.append(extentsOp.getExtents().begin(),
- extentsOp.getExtents().end());
+ extentsOp.getExtents().end());
return true;
}
if (mlir::isa<fir::ShapeType>(shapeVal.getType())) {
auto extentsOp = fir::ShapeExtentsOp::create(rewriter, loc, shapeVal);
shapeVec.append(extentsOp.getExtents().begin(),
- extentsOp.getExtents().end());
+ extentsOp.getExtents().end());
return true;
}
@@ -364,7 +364,8 @@ void FIRToMemRef::collectSliceInfoFrom(OpTy op, SliceInfo &info) const {
if (Operation *shapeValOp = shapeVal.getDefiningOp()) {
if (auto shapeOp = dyn_cast<fir::ShapeOp>(shapeValOp)) {
populateShape(info.shapeVec, shapeOp);
- } else if (auto shapeShiftOp = dyn_cast<fir::ShapeShiftOp>(shapeValOp)) {
+ } else if (auto shapeShiftOp =
+ dyn_cast<fir::ShapeShiftOp>(shapeValOp)) {
populateShapeAndShift(info.shapeVec, info.shiftVec, shapeShiftOp);
} else if (auto shiftOp = dyn_cast<fir::ShiftOp>(shapeValOp)) {
populateShift(info.shiftVec, shiftOp);
``````````
</details>
https://github.com/llvm/llvm-project/pull/199361
More information about the flang-commits
mailing list