Skip to content

[Flang][Driver] Enable config file options #100343

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions clang/include/clang/Driver/Options.td
Original file line number Diff line number Diff line change
Expand Up @@ -1163,19 +1163,19 @@ def client__name : JoinedOrSeparate<["-"], "client_name">;
def combine : Flag<["-", "--"], "combine">, Flags<[NoXarchOption, Unsupported]>;
def compatibility__version : JoinedOrSeparate<["-"], "compatibility_version">;
def config : Joined<["--"], "config=">, Flags<[NoXarchOption]>,
Visibility<[ClangOption, CLOption, DXCOption]>, MetaVarName<"<file>">,
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>, MetaVarName<"<file>">,
HelpText<"Specify configuration file">;
def : Separate<["--"], "config">, Alias<config>;
def : Separate<["--"], "config">, Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>, Alias<config>;
def no_default_config : Flag<["--"], "no-default-config">,
Flags<[NoXarchOption]>, Visibility<[ClangOption, CLOption, DXCOption]>,
Flags<[NoXarchOption]>, Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
HelpText<"Disable loading default configuration files">;
def config_system_dir_EQ : Joined<["--"], "config-system-dir=">,
Flags<[NoXarchOption, HelpHidden]>,
Visibility<[ClangOption, CLOption, DXCOption]>,
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
HelpText<"System directory for configuration files">;
def config_user_dir_EQ : Joined<["--"], "config-user-dir=">,
Flags<[NoXarchOption, HelpHidden]>,
Visibility<[ClangOption, CLOption, DXCOption]>,
Visibility<[ClangOption, CLOption, DXCOption, FlangOption]>,
HelpText<"User directory for configuration files">;
def coverage : Flag<["-", "--"], "coverage">, Group<Link_Group>,
Visibility<[ClangOption, CLOption]>;
Expand Down
1 change: 1 addition & 0 deletions flang/test/Driver/Inputs/config-1.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-flto
1 change: 1 addition & 0 deletions flang/test/Driver/Inputs/config-2.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-fno-signed-zeros
1 change: 1 addition & 0 deletions flang/test/Driver/Inputs/config-2a.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-fopenmp
1 change: 1 addition & 0 deletions flang/test/Driver/Inputs/config-6.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-fstack-arrays
1 change: 1 addition & 0 deletions flang/test/Driver/Inputs/config/config-4.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-O3
1 change: 1 addition & 0 deletions flang/test/Driver/Inputs/config2/config-4.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-ffp-contract=fast
63 changes: 63 additions & 0 deletions flang/test/Driver/config-file.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
!--- Config file (full path) in output of -###
!
! RUN: %flang --config-system-dir=%S/Inputs/config --config-user-dir=%S/Inputs/config2 -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-DIRS
! CHECK-DIRS: System configuration file directory: {{.*}}/Inputs/config
! CHECK-DIRS: User configuration file directory: {{.*}}/Inputs/config2
!
!--- Config file (full path) in output of -###
!
! RUN: %flang --config %S/Inputs/config-1.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-HHH
! RUN: %flang --config=%S/Inputs/config-1.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-HHH
! CHECK-HHH: Configuration file: {{.*}}Inputs{{.}}config-1.cfg
! CHECK-HHH: -flto
!
!
!--- Config file (full path) in output of -v
!
! RUN: %flang --config %S/Inputs/config-1.cfg -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-V
! CHECK-V: Configuration file: {{.*}}Inputs{{.}}config-1.cfg
! CHECK-V: -flto
!
!--- Config file in output of -###
!
! RUN: %flang --config-system-dir=%S/Inputs --config-user-dir= --config config-1.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-HHH2
! CHECK-HHH2: Configuration file: {{.*}}Inputs{{.}}config-1.cfg
! CHECK-HHH2: -flto
!
!--- Config file in output of -v
!
! RUN: %flang --config-system-dir=%S/Inputs --config-user-dir= --config config-1.cfg -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-V2
! CHECK-V2: Configuration file: {{.*}}Inputs{{.}}config-1.cfg
! CHECK-V2: -flto
!
!--- Nested config files
!
! RUN: %flang --config-system-dir=%S/Inputs --config-user-dir= --config config-2.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-NESTED
! CHECK-NESTED: Configuration file: {{.*}}Inputs{{.}}config-2.cfg
! CHECK-NESTED: -fno-signed-zeros
!
! RUN: %flang --config-system-dir=%S/Inputs --config-user-dir=%S/Inputs/config --config config-6.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-NESTED2
! CHECK-NESTED2: Configuration file: {{.*}}Inputs{{.}}config-6.cfg
! CHECK-NESTED2: -fstack-arrays
!
!
! RUN: %flang --config %S/Inputs/config-2a.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-NESTEDa
! CHECK-NESTEDa: Configuration file: {{.*}}Inputs{{.}}config-2a.cfg
! CHECK-NESTEDa: -fopenmp
!
! RUN: %flang --config-system-dir=%S/Inputs --config-user-dir= --config config-2a.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-NESTED2a
! CHECK-NESTED2a: Configuration file: {{.*}}Inputs{{.}}config-2a.cfg
! CHECK-NESTED2a: -fopenmp
!
!--- User directory is searched first.
!
! RUN: %flang --config-system-dir=%S/Inputs/config --config-user-dir=%S/Inputs/config2 --config config-4.cfg -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-PRECEDENCE
! CHECK-PRECEDENCE: Configuration file: {{.*}}Inputs{{.}}config2{{.}}config-4.cfg
! CHECK-PRECEDENCE: -ffp-contract=fast
!
!--- Multiple configuration files can be specified.
! RUN: %flang --config-system-dir=%S/Inputs/config --config-user-dir= --config config-4.cfg --config %S/Inputs/config2/config-4.cfg -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-TWO-CONFIGS
! CHECK-TWO-CONFIGS: Configuration file: {{.*}}Inputs{{.}}config{{.}}config-4.cfg
! CHECK-TWO-CONFIGS-NEXT: Configuration file: {{.*}}Inputs{{.}}config2{{.}}config-4.cfg
! CHECK-TWO-CONFIGS: -ffp-contract=fast
! CHECK-TWO-CONFIGS: -O3
Loading