[flang-commits] [flang] Pass to add frame pointer attribute (PR #74598)
via flang-commits
flang-commits at lists.llvm.org
Wed Dec 6 06:48:25 PST 2023
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 546a9ce80cac8fe73d239496010ae84972da3ca8 fda39a4d196c6cdafe3ee42358c962ef0173aaca -- flang/lib/Optimizer/Transforms/FunctionAttr.cpp flang/include/flang/Optimizer/Transforms/Passes.h flang/include/flang/Tools/CLOptions.inc flang/include/flang/Tools/CrossToolHelpers.h flang/lib/Frontend/CompilerInvocation.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/flang/include/flang/Optimizer/Transforms/Passes.h b/flang/include/flang/Optimizer/Transforms/Passes.h
index c5f09fc258..6010b6cd23 100644
--- a/flang/include/flang/Optimizer/Transforms/Passes.h
+++ b/flang/include/flang/Optimizer/Transforms/Passes.h
@@ -84,12 +84,13 @@ std::unique_ptr<mlir::Pass> createVScaleAttrPass();
std::unique_ptr<mlir::Pass>
createVScaleAttrPass(std::pair<unsigned, unsigned> vscaleAttr);
-struct FunctionAttrTypes{
- llvm::FramePointerKind framePointerKind;
+struct FunctionAttrTypes {
+ llvm::FramePointerKind framePointerKind;
};
std::unique_ptr<mlir::Pass> createFunctionAttrPass();
-std::unique_ptr<mlir::Pass> createFunctionAttrPass(FunctionAttrTypes &functionAttr);
+std::unique_ptr<mlir::Pass>
+createFunctionAttrPass(FunctionAttrTypes &functionAttr);
// declarative passes
#define GEN_PASS_REGISTRATION
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index a89a93c2d3..e9348a72b2 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -248,14 +248,13 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
if (const llvm::opt::Arg *a =
args.getLastArg(clang::driver::options::OPT_mframe_pointer_EQ)) {
llvm::StringRef s = a->getValue();
- assert(s == "none" || s == "non-leaf"|| s == "all");
+ assert(s == "none" || s == "non-leaf" || s == "all");
if (s == "none")
opts.setFramePointer(llvm::FramePointerKind::None);
+ else if (s == "non-leaf")
+ opts.setFramePointer(llvm::FramePointerKind::NonLeaf);
else
- if (s == "non-leaf")
- opts.setFramePointer(llvm::FramePointerKind::NonLeaf);
- else
- opts.setFramePointer(llvm::FramePointerKind::All);
+ opts.setFramePointer(llvm::FramePointerKind::All);
}
for (auto *a : args.filtered(clang::driver::options::OPT_fpass_plugin_EQ))
diff --git a/flang/lib/Optimizer/Transforms/FunctionAttr.cpp b/flang/lib/Optimizer/Transforms/FunctionAttr.cpp
index dd7e3947f0..26ddb52ae7 100644
--- a/flang/lib/Optimizer/Transforms/FunctionAttr.cpp
+++ b/flang/lib/Optimizer/Transforms/FunctionAttr.cpp
@@ -52,9 +52,7 @@ public:
FunctionAttrPass(const fir::FunctionAttrOptions &options) {
framePointerKind = options.framePointerKind;
}
- FunctionAttrPass() {
-
- }
+ FunctionAttrPass() {}
void runOnOperation() override;
};
@@ -67,31 +65,36 @@ void FunctionAttrPass::runOnOperation() {
LLVM_DEBUG(llvm::dbgs() << "Func-name:" << func.getSymName() << "\n");
auto context = &getContext();
-
- func->setAttr("frame_pointer", mlir::LLVM::FramePointerKindAttr::get( context, framePointerKind ));
+
+ func->setAttr("frame_pointer", mlir::LLVM::FramePointerKindAttr::get(
+ context, framePointerKind));
LLVM_DEBUG(llvm::dbgs() << "=== End " DEBUG_TYPE " ===\n");
}
-std::unique_ptr<mlir::Pass> fir::createFunctionAttrPass(fir::FunctionAttrTypes &functionAttr) {
+std::unique_ptr<mlir::Pass>
+fir::createFunctionAttrPass(fir::FunctionAttrTypes &functionAttr) {
FunctionAttrOptions opts;
- // Frame pointer
+ // Frame pointer
switch (functionAttr.framePointerKind) {
case llvm::FramePointerKind::None:
- opts.framePointerKind = mlir::LLVM::framePointerKind::symbolizeFramePointerKind(0).value();
+ opts.framePointerKind =
+ mlir::LLVM::framePointerKind::symbolizeFramePointerKind(0).value();
break;
case llvm::FramePointerKind::NonLeaf:
- opts.framePointerKind = mlir::LLVM::framePointerKind::symbolizeFramePointerKind(1).value();
+ opts.framePointerKind =
+ mlir::LLVM::framePointerKind::symbolizeFramePointerKind(1).value();
break;
case llvm::FramePointerKind::All:
- opts.framePointerKind = mlir::LLVM::framePointerKind::symbolizeFramePointerKind(2).value();
+ opts.framePointerKind =
+ mlir::LLVM::framePointerKind::symbolizeFramePointerKind(2).value();
break;
}
return std::make_unique<FunctionAttrPass>(opts);
}
-
+
std::unique_ptr<mlir::Pass> fir::createFunctionAttrPass() {
return std::make_unique<FunctionAttrPass>();
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/74598
More information about the flang-commits
mailing list