[flang-commits] [flang] [Flang] Add `INLINEALWAYS` Compiler Directive (PR #192674)

Eugene Epshteyn via flang-commits flang-commits at lists.llvm.org
Fri Apr 17 09:05:45 PDT 2026


================
@@ -3508,6 +3514,23 @@ class FirConverter : public Fortran::lower::AbstractConverter {
       e->dirs.push_back(&dir);
   }
 
+  void markCurrentFuncAsAlwaysInline(
+      const Fortran::parser::CompilerDirective::InlineAlways &dir) {
+    mlir::func::FuncOp func = builder->getFunction();
+    if (currentFunctionUnit && !currentFunctionUnit->isMainProgram()) {
+      const std::string symName =
+          currentFunctionUnit->getSubprogramSymbol().name().ToString();
+      if (!llvm::StringRef(dir.v->ToString()).equals_insensitive(symName)) {
----------------
eugeneepshteyn wrote:

This check is Semantics concern, not Lowering concern, so should be done probably in resolve-names.cpp, perhaps in `ResolveNamesVisitor::Post(CompilerDirective)`

https://github.com/llvm/llvm-project/pull/192674


More information about the flang-commits mailing list