-
Notifications
You must be signed in to change notification settings - Fork 14.9k
release/21.x: [flang] Disable loop interchange by default (#155279) #155362
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
Conversation
@kasuga-fj What do you think about merging this PR to the release branch? |
@llvm/pr-subscribers-flang-driver @llvm/pr-subscribers-clang-driver Author: None (llvmbot) ChangesBackport 8849750 Requested by: @nikic Full diff: https://github.com/llvm/llvm-project/pull/155362.diff 2 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 3086c14fdaa4a..8d3775de9be5e 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -3265,14 +3265,8 @@ void tools::handleVectorizeSLPArgs(const ArgList &Args,
void tools::handleInterchangeLoopsArgs(const ArgList &Args,
ArgStringList &CmdArgs) {
- // FIXME: instead of relying on shouldEnableVectorizerAtOLevel, we may want to
- // implement a separate function to infer loop interchange from opt level.
- // For now, enable loop-interchange at the same opt levels as loop-vectorize.
- bool EnableInterchange = shouldEnableVectorizerAtOLevel(Args, false);
- OptSpecifier InterchangeAliasOption =
- EnableInterchange ? options::OPT_O_Group : options::OPT_floop_interchange;
- if (Args.hasFlag(options::OPT_floop_interchange, InterchangeAliasOption,
- options::OPT_fno_loop_interchange, EnableInterchange))
+ if (Args.hasFlag(options::OPT_floop_interchange,
+ options::OPT_fno_loop_interchange, false))
CmdArgs.push_back("-floop-interchange");
}
diff --git a/flang/test/Driver/loop-interchange.f90 b/flang/test/Driver/loop-interchange.f90
index 5d3ec71c59874..1e5a11902709c 100644
--- a/flang/test/Driver/loop-interchange.f90
+++ b/flang/test/Driver/loop-interchange.f90
@@ -2,9 +2,9 @@
! RUN: %flang -### -S -fno-loop-interchange %s 2>&1 | FileCheck -check-prefix=CHECK-NO-LOOP-INTERCHANGE %s
! RUN: %flang -### -S -O0 %s 2>&1 | FileCheck -check-prefix=CHECK-NO-LOOP-INTERCHANGE %s
! RUN: %flang -### -S -O1 %s 2>&1 | FileCheck -check-prefix=CHECK-NO-LOOP-INTERCHANGE %s
-! RUN: %flang -### -S -O2 %s 2>&1 | FileCheck -check-prefix=CHECK-LOOP-INTERCHANGE %s
-! RUN: %flang -### -S -O3 %s 2>&1 | FileCheck -check-prefix=CHECK-LOOP-INTERCHANGE %s
-! RUN: %flang -### -S -Os %s 2>&1 | FileCheck -check-prefix=CHECK-LOOP-INTERCHANGE %s
+! RUN: %flang -### -S -O2 %s 2>&1 | FileCheck -check-prefix=CHECK-NO-LOOP-INTERCHANGE %s
+! RUN: %flang -### -S -O3 %s 2>&1 | FileCheck -check-prefix=CHECK-NO-LOOP-INTERCHANGE %s
+! RUN: %flang -### -S -Os %s 2>&1 | FileCheck -check-prefix=CHECK-NO-LOOP-INTERCHANGE %s
! RUN: %flang -### -S -Oz %s 2>&1 | FileCheck -check-prefix=CHECK-NO-LOOP-INTERCHANGE %s
! CHECK-LOOP-INTERCHANGE: "-floop-interchange"
! CHECK-NO-LOOP-INTERCHANGE-NOT: "-floop-interchange"
|
@nikic (or anyone else). If you would like to add a note about this fix in the release notes (completely optional). Please reply to this comment with a one or two sentence description of the fix. When you are done, please add the release:note label to this PR. |
Disable loop interchange by default, while keeping the ability to explicitly enable using `-floop-interchange`. This matches Clang. See discussion on llvm#140182. (cherry picked from commit 8849750)
Should we remove this line? llvm-project/flang/docs/ReleaseNotes.md Line 38 in 306481b
I'm sorry, but I'm not sure of the correct process for removing an item from the release notes. |
Backport 8849750
Requested by: @nikic