Skip to content

Commit 9375f35

Browse files
authored
[SYCL] Don't run SYCLOptimizeBarriersPass with O0 (#20037)
Signed-off-by: Sidorov, Dmitry <[email protected]>
1 parent ad30097 commit 9375f35

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

clang/lib/CodeGen/BackendUtil.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,8 +1093,9 @@ void EmitAssemblyHelper::RunOptimizationPipeline(
10931093
ThinOrFullLTOPhase) {
10941094
MPM.addPass(createModuleToFunctionPassAdaptor(
10951095
InferAddressSpacesPass(clang::targets::SPIR_GENERIC_AS)));
1096-
MPM.addPass(
1097-
createModuleToFunctionPassAdaptor(SYCLOptimizeBarriersPass()));
1096+
if (Level != OptimizationLevel::O0)
1097+
MPM.addPass(createModuleToFunctionPassAdaptor(
1098+
SYCLOptimizeBarriersPass()));
10981099
});
10991100
}
11001101

clang/test/CodeGenSYCL/kernel-early-optimization-pipeline.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
// CHECK: InferFunctionAttrsPass
1313
// CHECK: AlwaysInlinerPass
1414
// CHECK: ModuleInlinerWrapperPass
15+
// CHECK: SYCLOptimizeBarriersPass
1516
// CHECK: ConstantMergePass
1617
// CHECK: SYCLMutatePrintfAddrspacePass
1718
// CHECK: SYCLPropagateAspectsUsagePass
@@ -22,4 +23,13 @@
2223
//
2324
// RUN: %clang_cc1 -O2 -fsycl-is-device -triple spir64-unknown-unknown %s -mdebug-pass Structure -emit-llvm -fno-sycl-early-optimizations -o /dev/null 2>&1 | FileCheck %s --check-prefix=CHECK-NOEARLYOPT
2425
// CHECK-NOEARLYOPT-NOT: ConstantMergePass1
26+
// CHECK-NOEARLYOPT-NOT: SYCLOptimizeBarriersPass
2527
// CHECK-NOEARLYOPT: SYCLMutatePrintfAddrspacePass
28+
29+
// RUN: %clang_cc1 -O0 -fsycl-is-device -triple spir64-unknown-unknown %s -mdebug-pass Structure -emit-llvm -o /dev/null 2>&1 | FileCheck %s --check-prefix=CHECK-O0
30+
// CHECK-O0-NOT: SYCLOptimizeBarriersPass
31+
32+
// Passes registered via registerOptimizerLastEPCallback don't run on empty
33+
// code
34+
__attribute__((sycl_device)) void bar() {
35+
}

0 commit comments

Comments
 (0)