Skip to content

Commit 7a540ea

Browse files
committed
fixup! change place of pass in pipeline
1 parent ae25025 commit 7a540ea

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

clang/include/clang/Driver/Options.td

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4268,10 +4268,10 @@ def floop_interchange : Flag<["-"], "floop-interchange">, Group<f_Group>,
42684268
HelpText<"Enable the loop interchange pass">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
42694269
def fno_loop_interchange: Flag<["-"], "fno-loop-interchange">, Group<f_Group>,
42704270
HelpText<"Disable the loop interchange pass">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
4271-
def fexperimental_loop_fusion : Flag<["-"], "fexperimental-loop-fusion">, Group<f_Group>,
4272-
HelpText<"Enable the experimental loop fusion pass">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
4273-
def fno_experimental_loop_fusion: Flag<["-"], "fno-experimental-loop-fusion">, Group<f_Group>,
4274-
HelpText<"Disable the experimental loop fusion pass">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
4271+
defm experimental_loop_fusion
4272+
: OptInCC1FFlag<"experimental-loop-fusion", "Enable", "Disable",
4273+
"Enable the loop fusion pass",
4274+
[ClangOption, CC1Option, FlangOption, FC1Option]>;
42754275
def funroll_loops : Flag<["-"], "funroll-loops">, Group<f_Group>,
42764276
HelpText<"Turn on loop unroller">, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>;
42774277
def fno_unroll_loops : Flag<["-"], "fno-unroll-loops">, Group<f_Group>,

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,8 +1673,6 @@ void CompilerInvocationBase::GenerateCodeGenArgs(const CodeGenOptions &Opts,
16731673

16741674
if (Opts.FuseLoops)
16751675
GenerateArg(Consumer, OPT_fexperimental_loop_fusion);
1676-
else
1677-
GenerateArg(Consumer, OPT_fno_experimental_loop_fusion);
16781676

16791677
if (!Opts.BinutilsVersion.empty())
16801678
GenerateArg(Consumer, OPT_fbinutils_version_EQ, Opts.BinutilsVersion);

clang/test/CodeGen/loop-fusion.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Check if LoopFusion pass is triggered.
2+
//
3+
// RUN: %clang -c -fexperimental-loop-fusion -mllvm -print-pipeline-passes -O3 %s 2>&1 | FileCheck --check-prefixes=LOOP-FUSION-ON %s
4+
// RUN: %clang -c -mllvm -print-pipeline-passes -O3 %s 2>&1 | FileCheck --check-prefixes=LOOP-FUSION-OFF %s
5+
6+
// LOOP-FUSION-ON: loop-fusion
7+
// LOOP-FUSION-OFF-NOT: loop-fusion
8+
void foo(void) {}

llvm/lib/Passes/PassBuilderPipelines.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1554,14 +1554,14 @@ PassBuilder::buildModuleOptimizationPipeline(OptimizationLevel Level,
15541554
if (PTO.LoopInterchange)
15551555
LPM.addPass(LoopInterchangePass());
15561556

1557+
OptimizePM.addPass(createFunctionToLoopPassAdaptor(
1558+
std::move(LPM), /*UseMemorySSA=*/false, /*UseBlockFrequencyInfo=*/false));
1559+
15571560
// FIXME: This may not be the right place in the pipeline.
15581561
// We need to have the data to support the right place.
15591562
if (PTO.LoopFusion)
15601563
OptimizePM.addPass(LoopFusePass());
15611564

1562-
OptimizePM.addPass(createFunctionToLoopPassAdaptor(
1563-
std::move(LPM), /*UseMemorySSA=*/false, /*UseBlockFrequencyInfo=*/false));
1564-
15651565
// Distribute loops to allow partial vectorization. I.e. isolate dependences
15661566
// into separate loop that would otherwise inhibit vectorization. This is
15671567
// currently only performed for loops marked with the metadata

0 commit comments

Comments
 (0)