[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