Skip to content

Commit fbd9079

Browse files
committed
Merge branch 'pr_2999' into llvmspirv_pulldown
2 parents cc2437d + 7472639 commit fbd9079

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

clang/lib/Frontend/CompilerInvocation.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -968,7 +968,10 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
968968
Args.getLastArg(OPT_emit_llvm_uselists, OPT_no_emit_llvm_uselists))
969969
Opts.EmitLLVMUseLists = A->getOption().getID() == OPT_emit_llvm_uselists;
970970

971-
Opts.DisableLLVMPasses = Args.hasArg(OPT_disable_llvm_passes);
971+
Opts.DisableLLVMPasses =
972+
Args.hasArg(OPT_disable_llvm_passes) ||
973+
(Args.hasArg(OPT_fsycl_is_device) && Triple.isSPIR() &&
974+
Args.hasArg(OPT_fno_sycl_early_optimizations));
972975
Opts.DisableLifetimeMarkers = Args.hasArg(OPT_disable_lifetimemarkers);
973976

974977
const llvm::Triple::ArchType DebugEntryValueArchs[] = {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Check LLVM optimization pipeline is run by default for SPIR-V compiled for
2+
// SYCL device target, and can be disabled with -fno-sycl-early-optimizations.
3+
//
4+
// RUN: %clang_cc1 -O2 -fsycl -fsycl-is-device -triple spir64-unknown-unknown-sycldevice %s -mllvm -debug-pass=Structure -emit-llvm -o - 2>&1 | FileCheck %s --check-prefix=CHECK-EARLYOPT
5+
// CHECK-EARLYOPT: Lower Work Group Scope Code
6+
// CHECK-EARLYOPT: Combine redundant instructions
7+
//
8+
// RUN: %clang_cc1 -O2 -fsycl -fsycl-is-device -fno-sycl-early-optimizations -triple spir64-unknown-unknown-sycldevice %s -mllvm -debug-pass=Structure -emit-llvm -o - 2>&1 | FileCheck %s --check-prefix=CHECK-NOEARLYOPT
9+
// CHECK-NOEARLYOPT: Lower Work Group Scope Code
10+
// CHECK-NOEARLYOPT-NOT: Combine redundant instructions

0 commit comments

Comments
 (0)