[flang-commits] [flang] [Flang] Add `INLINEALWAYS` Compiler Directive (PR #192674)
Eugene Epshteyn via flang-commits
flang-commits at lists.llvm.org
Fri Apr 24 11:58:31 PDT 2026
================
@@ -0,0 +1,44 @@
+! Check the appropriate flags are added to inline functions when inlinealways is used, or ignored when the name is incorrect.
+
+! RUN: %flang_fc1 -emit-hlfir %s -o - | FileCheck %s
+
+subroutine test_subroutine()
+ !DIR$ INLINEALWAYS test_subroutine
+end subroutine
+! CHECK: func.func @_QPtest_subroutine() attributes {llvm.always_inline} {
+
+subroutine test_subroutine2()
+ !DIR$ INLINEALWAYS wrong_subroutine
+end subroutine
+! CHECK: func.func @_QPtest_subroutine2() {
+
+subroutine test_subroutine3()
+end subroutine
+
+function test_func1()
+!DIR$ INLINEALWAYS test_func1
+end function
+! CHECK: func.func @_QPtest_func1() -> f32 attributes {llvm.always_inline} {
+
+function test_func2()
+!DIR$ INLINEALWAYS wrong_func
+end function
+! CHCEK: func.func @_QPtest_func2() -> f32 {
+
+integer function test_func3() result(res)
+ res = 10
+end function
+
+subroutine test()
+ implicit none
+ integer:: result, test_func3
+
+ !DIR$ INLINEALWAYS
+ call test_subroutine3
+! CHECK: fir.call @_QPtest_subroutine3() fastmath<contract> {inline_attr = #fir.inline_attrs<always_inline>} : () -> ()
+
+ result = 0
+ !DIR$ INLINEALWAYS
+ result = test_func3()
+! CHCEK: %[[.*]] = fir.call @_QPtest_func3() fastmath<contract> {inline_attr = #fir.inline_attrs<always_inline>} : () -> i32
----------------
eugeneepshteyn wrote:
Typo `CHCEK` -> 'CHECK'
https://github.com/llvm/llvm-project/pull/192674
More information about the flang-commits
mailing list