[clang] [flang] [flang][driver] add -flang-deprecated-no-hlfir hidden option (PR #71820)

2023-11-10 Thread via cfe-commits

jeanPerier wrote:

> Yes I meant hlfir-flags.f90. Sorry about that. Thanks for the changes!
No problem, thanks for the review and comments!


https://github.com/llvm/llvm-project/pull/71820
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang][driver] add -flang-deprecated-no-hlfir hidden option (PR #71820)

2023-11-10 Thread via cfe-commits

https://github.com/jeanPerier closed 
https://github.com/llvm/llvm-project/pull/71820
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang][driver] add -flang-deprecated-no-hlfir hidden option (PR #71820)

2023-11-09 Thread Slava Zakharin via cfe-commits

https://github.com/vzakhari approved this pull request.

Thank you, Jean!

https://github.com/llvm/llvm-project/pull/71820
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang][driver] add -flang-deprecated-no-hlfir hidden option (PR #71820)

2023-11-09 Thread Tom Eccles via cfe-commits

https://github.com/tblah edited https://github.com/llvm/llvm-project/pull/71820
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang][driver] add -flang-deprecated-no-hlfir hidden option (PR #71820)

2023-11-09 Thread Tom Eccles via cfe-commits

https://github.com/tblah requested changes to this pull request.

Thanks for this!

Please could you also add testing in flang/Driver/frontend-forwarding.f90, 
flang/test/HLFIR/hlfir-flang.f90

https://github.com/llvm/llvm-project/pull/71820
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang][driver] add -flang-deprecated-no-hlfir hidden option (PR #71820)

2023-11-09 Thread Tom Eccles via cfe-commits


@@ -1073,6 +1073,12 @@ bool CompilerInvocation::createFromArgs(
 res.loweringOpts.setLowerToHighLevelFIR(true);
   }
 
+  // -flang-deprecated-no-hlfir
+  if (args.hasArg(clang::driver::options::OPT_flang_deprecated_no_hlfir) &&
+  !args.hasArg(clang::driver::options::OPT_emit_hlfir)) {

tblah wrote:

nit: specifying -flang-depricated-nohlfir and -flang-experimental-hlfir 
together should probably be an error or at least a warning

https://github.com/llvm/llvm-project/pull/71820
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang][driver] add -flang-deprecated-no-hlfir hidden option (PR #71820)

2023-11-09 Thread via cfe-commits

llvmbot wrote:




@llvm/pr-subscribers-clang-driver

Author: None (jeanPerier)


Changes

Patch 1/3 of the transition to use the HLFIR step by default in lowering as 
described in 
https://discourse.llvm.org/t/rfc-enabling-the-hlfir-lowering-by-default/72778/7

This option will allow to lower code without the HLFIR step during a grace 
period as described in the RFC. It is not meant to be a long term switch for 
flang.

---
Full diff: https://github.com/llvm/llvm-project/pull/71820.diff


5 Files Affected:

- (modified) clang/include/clang/Driver/Options.td (+4) 
- (modified) clang/lib/Driver/ToolChains/Flang.cpp (+1) 
- (modified) flang/lib/Frontend/CompilerInvocation.cpp (+6) 
- (modified) flang/test/Driver/driver-help-hidden.f90 (+2) 
- (modified) flang/test/HLFIR/hlfir-flags.f90 (+1) 


``diff
diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 7d933aabd16d7fa..11d231be7f1ee60 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -6210,6 +6210,10 @@ def flang_experimental_hlfir : Flag<["-"], 
"flang-experimental-hlfir">,
   Flags<[HelpHidden]>, Visibility<[FlangOption, FC1Option]>,
   HelpText<"Use HLFIR lowering (experimental)">;
 
+def flang_deprecated_no_hlfir : Flag<["-"], "flang-deprecated-no-hlfir">,
+  Flags<[HelpHidden]>, Visibility<[FlangOption, FC1Option]>,
+  HelpText<"Do not use HLFIR lowering (deprecated)">;
+
 def flang_experimental_polymorphism : Flag<["-"], 
"flang-experimental-polymorphism">,
   Flags<[HelpHidden]>, Visibility<[FlangOption, FC1Option]>,
   HelpText<"Enable Fortran 2003 polymorphism (experimental)">;
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp 
b/clang/lib/Driver/ToolChains/Flang.cpp
index 999039f83ddfb92..ce0f7e4da006d5f 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -143,6 +143,7 @@ void Flang::addCodegenOptions(const ArgList ,
 CmdArgs.push_back("-fversion-loops-for-stride");
 
   Args.addAllArgs(CmdArgs, {options::OPT_flang_experimental_hlfir,
+options::OPT_flang_deprecated_no_hlfir,
 options::OPT_flang_experimental_polymorphism,
 options::OPT_fno_ppc_native_vec_elem_order,
 options::OPT_fppc_native_vec_elem_order,
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp 
b/flang/lib/Frontend/CompilerInvocation.cpp
index ba2ecab3742587a..a1d71da76634c71 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1073,6 +1073,12 @@ bool CompilerInvocation::createFromArgs(
 res.loweringOpts.setLowerToHighLevelFIR(true);
   }
 
+  // -flang-deprecated-no-hlfir
+  if (args.hasArg(clang::driver::options::OPT_flang_deprecated_no_hlfir) &&
+  !args.hasArg(clang::driver::options::OPT_emit_hlfir)) {
+res.loweringOpts.setLowerToHighLevelFIR(false);
+  }
+
   if 
(args.hasArg(clang::driver::options::OPT_flang_experimental_polymorphism)) {
 res.loweringOpts.setPolymorphicTypeImpl(true);
   }
diff --git a/flang/test/Driver/driver-help-hidden.f90 
b/flang/test/Driver/driver-help-hidden.f90
index 6d399f1d179a022..5e0e459c21c93e2 100644
--- a/flang/test/Driver/driver-help-hidden.f90
+++ b/flang/test/Driver/driver-help-hidden.f90
@@ -49,6 +49,8 @@
 ! CHECK-NEXT: -fintegrated-as Enable the integrated assembler
 ! CHECK-NEXT: -fintrinsic-modules-path 
 ! CHECK-NEXT: Specify where to find the compiled 
intrinsic modules
+! CHECK-NEXT: -flang-deprecated-no-hlfir
+! CHECK-NEXT: Do not use HLFIR lowering (deprecated)
 ! CHECK-NEXT: -flang-experimental-hlfir
 ! CHECK-NEXT: Use HLFIR lowering (experimental)
 ! CHECK-NEXT: -flang-experimental-polymorphism
diff --git a/flang/test/HLFIR/hlfir-flags.f90 b/flang/test/HLFIR/hlfir-flags.f90
index ccd6184e0265266..8ba9b21562a60ce 100644
--- a/flang/test/HLFIR/hlfir-flags.f90
+++ b/flang/test/HLFIR/hlfir-flags.f90
@@ -4,6 +4,7 @@
 ! RUN: %flang_fc1 -emit-hlfir -flang-experimental-hlfir -o - %s | FileCheck 
--check-prefix HLFIR --check-prefix ALL %s
 ! RUN: bbc -emit-hlfir -hlfir -o - %s | FileCheck --check-prefix HLFIR 
--check-prefix ALL %s
 ! RUN: %flang_fc1 -emit-fir -o - %s | FileCheck %s --check-prefix NO-HLFIR 
--check-prefix ALL
+! RUN: %flang_fc1 -emit-fir -flang-deprecated-no-hlfir -o - %s | FileCheck %s 
--check-prefix NO-HLFIR --check-prefix ALL
 ! RUN: bbc -emit-fir -o - %s | FileCheck %s --check-prefix NO-HLFIR 
--check-prefix ALL
 ! RUN: %flang_fc1 -emit-fir -flang-experimental-hlfir -o - %s | FileCheck 
--check-prefix FIR --check-prefix ALL %s
 ! RUN: bbc -emit-fir -hlfir -o - %s | FileCheck --check-prefix FIR 
--check-prefix ALL %s

``




https://github.com/llvm/llvm-project/pull/71820
___
cfe-commits mailing list
cfe-commits@lists.llvm.org

[clang] [flang] [flang][driver] add -flang-deprecated-no-hlfir hidden option (PR #71820)

2023-11-09 Thread via cfe-commits

https://github.com/jeanPerier created 
https://github.com/llvm/llvm-project/pull/71820

Patch 1/3 of the transition to use the HLFIR step by default in lowering as 
described in 
https://discourse.llvm.org/t/rfc-enabling-the-hlfir-lowering-by-default/72778/7

This option will allow to lower code without the HLFIR step during a grace 
period as described in the RFC. It is not meant to be a long term switch for 
flang.

>From bf7d4afdde4cae23f28bd8725f9a09b7141b7ed1 Mon Sep 17 00:00:00 2001
From: Jean Perier 
Date: Thu, 9 Nov 2023 03:11:31 -0800
Subject: [PATCH] [flang][driver] add -flang-deprecated-no-hlfir hidden option

Patch 1/3 of the transition step 1 to HLFIR enabled by default described
in 
https://discourse.llvm.org/t/rfc-enabling-the-hlfir-lowering-by-default/72778/7

This option will allow to use the lowering without the HLFIR step during
a grace period until. It is not meant to be a long term switch for
flang.
---
 clang/include/clang/Driver/Options.td | 4 
 clang/lib/Driver/ToolChains/Flang.cpp | 1 +
 flang/lib/Frontend/CompilerInvocation.cpp | 6 ++
 flang/test/Driver/driver-help-hidden.f90  | 2 ++
 flang/test/HLFIR/hlfir-flags.f90  | 1 +
 5 files changed, 14 insertions(+)

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 7d933aabd16d7fa..11d231be7f1ee60 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -6210,6 +6210,10 @@ def flang_experimental_hlfir : Flag<["-"], 
"flang-experimental-hlfir">,
   Flags<[HelpHidden]>, Visibility<[FlangOption, FC1Option]>,
   HelpText<"Use HLFIR lowering (experimental)">;
 
+def flang_deprecated_no_hlfir : Flag<["-"], "flang-deprecated-no-hlfir">,
+  Flags<[HelpHidden]>, Visibility<[FlangOption, FC1Option]>,
+  HelpText<"Do not use HLFIR lowering (deprecated)">;
+
 def flang_experimental_polymorphism : Flag<["-"], 
"flang-experimental-polymorphism">,
   Flags<[HelpHidden]>, Visibility<[FlangOption, FC1Option]>,
   HelpText<"Enable Fortran 2003 polymorphism (experimental)">;
diff --git a/clang/lib/Driver/ToolChains/Flang.cpp 
b/clang/lib/Driver/ToolChains/Flang.cpp
index 999039f83ddfb92..ce0f7e4da006d5f 100644
--- a/clang/lib/Driver/ToolChains/Flang.cpp
+++ b/clang/lib/Driver/ToolChains/Flang.cpp
@@ -143,6 +143,7 @@ void Flang::addCodegenOptions(const ArgList ,
 CmdArgs.push_back("-fversion-loops-for-stride");
 
   Args.addAllArgs(CmdArgs, {options::OPT_flang_experimental_hlfir,
+options::OPT_flang_deprecated_no_hlfir,
 options::OPT_flang_experimental_polymorphism,
 options::OPT_fno_ppc_native_vec_elem_order,
 options::OPT_fppc_native_vec_elem_order,
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp 
b/flang/lib/Frontend/CompilerInvocation.cpp
index ba2ecab3742587a..a1d71da76634c71 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -1073,6 +1073,12 @@ bool CompilerInvocation::createFromArgs(
 res.loweringOpts.setLowerToHighLevelFIR(true);
   }
 
+  // -flang-deprecated-no-hlfir
+  if (args.hasArg(clang::driver::options::OPT_flang_deprecated_no_hlfir) &&
+  !args.hasArg(clang::driver::options::OPT_emit_hlfir)) {
+res.loweringOpts.setLowerToHighLevelFIR(false);
+  }
+
   if 
(args.hasArg(clang::driver::options::OPT_flang_experimental_polymorphism)) {
 res.loweringOpts.setPolymorphicTypeImpl(true);
   }
diff --git a/flang/test/Driver/driver-help-hidden.f90 
b/flang/test/Driver/driver-help-hidden.f90
index 6d399f1d179a022..5e0e459c21c93e2 100644
--- a/flang/test/Driver/driver-help-hidden.f90
+++ b/flang/test/Driver/driver-help-hidden.f90
@@ -49,6 +49,8 @@
 ! CHECK-NEXT: -fintegrated-as Enable the integrated assembler
 ! CHECK-NEXT: -fintrinsic-modules-path 
 ! CHECK-NEXT: Specify where to find the compiled 
intrinsic modules
+! CHECK-NEXT: -flang-deprecated-no-hlfir
+! CHECK-NEXT: Do not use HLFIR lowering (deprecated)
 ! CHECK-NEXT: -flang-experimental-hlfir
 ! CHECK-NEXT: Use HLFIR lowering (experimental)
 ! CHECK-NEXT: -flang-experimental-polymorphism
diff --git a/flang/test/HLFIR/hlfir-flags.f90 b/flang/test/HLFIR/hlfir-flags.f90
index ccd6184e0265266..8ba9b21562a60ce 100644
--- a/flang/test/HLFIR/hlfir-flags.f90
+++ b/flang/test/HLFIR/hlfir-flags.f90
@@ -4,6 +4,7 @@
 ! RUN: %flang_fc1 -emit-hlfir -flang-experimental-hlfir -o - %s | FileCheck 
--check-prefix HLFIR --check-prefix ALL %s
 ! RUN: bbc -emit-hlfir -hlfir -o - %s | FileCheck --check-prefix HLFIR 
--check-prefix ALL %s
 ! RUN: %flang_fc1 -emit-fir -o - %s | FileCheck %s --check-prefix NO-HLFIR 
--check-prefix ALL
+! RUN: %flang_fc1 -emit-fir -flang-deprecated-no-hlfir -o - %s | FileCheck %s 
--check-prefix NO-HLFIR --check-prefix ALL
 ! RUN: bbc -emit-fir -o - %s | FileCheck %s --check-prefix NO-HLFIR 
--check-prefix