Skip to content

Commit 7d2f600

Browse files
committed
Resolving merge conflicts
Signed-off-by: Gail Lyons <[email protected]>
2 parents bc2b9ef + da6d1dc commit 7d2f600

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+819
-97
lines changed

clang/include/clang/Basic/Attr.td

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,9 @@ def LoopUnrollHint : InheritableAttr {
12881288
}
12891289

12901290
def IntelReqdSubGroupSize: InheritableAttr {
1291-
let Spellings = [GNU<"intel_reqd_sub_group_size">, CXX11<"cl", "intel_reqd_sub_group_size">];
1291+
let Spellings = [GNU<"intel_reqd_sub_group_size">,
1292+
CXX11<"cl", "intel_reqd_sub_group_size">,
1293+
CXX11<"intel", "reqd_sub_group_size">];
12921294
let Args = [ExprArgument<"SubGroupSize">];
12931295
let Subjects = SubjectList<[Function, CXXMethod], ErrorDiag>;
12941296
let Documentation = [IntelReqdSubGroupSizeDocs];

clang/include/clang/Basic/AttrDocs.td

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3472,9 +3472,10 @@ code. See `cl_intel_required_subgroup_size
34723472
for details.
34733473

34743474
SYCL documentation:
3475-
The [[cl::intel_reqd_sub_group_size(n)]] attribute indicates that the kernel
3476-
must be compiled and executed with a sub-group of size n. The value of n must be
3477-
set to a sub-group size supported by the device, or device compilation will fail.
3475+
The [[cl::intel_reqd_sub_group_size(n)]] and [[intel::reqd_sub_group_size(n)]]
3476+
attribute indicates that the kernel must be compiled and executed with a
3477+
sub-group of size n. The value of n must be set to a sub-group size supported
3478+
by the device, or device compilation will fail.
34783479

34793480
In addition to device functions, the required sub-group size attribute may also
34803481
be specified in the definition of a named functor object and lambda functions,
@@ -3495,6 +3496,19 @@ as in the examples below:
34953496
/* kernel code */
34963497
});
34973498

3499+
class Functor
3500+
{
3501+
[[intel::reqd_sub_group_size(16)]] void operator()(item<1> item)
3502+
{
3503+
/* kernel code */
3504+
}
3505+
}
3506+
3507+
kernel<class kernel_name>(
3508+
[]() [[intel::reqd_sub_group_size(n)]] {
3509+
/* kernel code */
3510+
});
3511+
34983512
See Sub-groups for NDRange Parallelism proposal in sycl/doc/extensions/sub_group_ndrange/sub_group_ndrange.md
34993513
}];
35003514
}

clang/include/clang/Basic/DiagnosticSemaKinds.td

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10979,6 +10979,9 @@ def warn_sycl_implicit_decl
1097910979
"declaration for a kernel type name; your program may not "
1098010980
"be portable">,
1098110981
InGroup<SyclStrict>, DefaultIgnore;
10982+
def warn_sycl_restrict_recursion
10983+
: Warning<"SYCL kernel cannot call a recursive function">,
10984+
InGroup<SyclStrict>, DefaultError;
1098210985
def err_ivdep_duplicate_arg : Error<
1098310986
"duplicate argument to 'ivdep'. attribute requires one or both of a safelen "
1098410987
"and array">;
@@ -10990,6 +10993,11 @@ def err_ivdep_declrefexpr_arg : Error<
1099010993
def warn_ivdep_redundant : Warning <"ignoring redundant Intel FPGA loop "
1099110994
"attribute 'ivdep': safelen %select{INF|%1}0 >= safelen %select{INF|%3}2">,
1099210995
InGroup<IgnoredAttributes>;
10996+
def warn_attribute_spelling_deprecated : Warning<
10997+
"attribute %0 is deprecated">,
10998+
InGroup<DeprecatedAttributes>;
10999+
def note_spelling_suggestion : Note<
11000+
"did you mean to use %0 instead?">;
1099311001

1099411002
// errors of expect.with.probability
1099511003
def err_probability_not_constant_float : Error<

clang/lib/CodeGen/BackendUtil.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "llvm/CodeGen/RegAllocRegistry.h"
2828
#include "llvm/CodeGen/SchedulerRegistry.h"
2929
#include "llvm/CodeGen/TargetSubtargetInfo.h"
30+
#include "llvm/GenXIntrinsics/GenXSPIRVWriterAdaptor.h"
3031
#include "llvm/IR/DataLayout.h"
3132
#include "llvm/IR/IRPrintingPasses.h"
3233
#include "llvm/IR/LegacyPassManager.h"
@@ -890,6 +891,9 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action,
890891
if (LangOpts.SYCLIsDevice && CodeGenOpts.DisableLLVMPasses)
891892
PerModulePasses.add(createDeadCodeEliminationPass());
892893

894+
if (LangOpts.SYCLIsDevice && LangOpts.SYCLExplicitSIMD)
895+
PerModulePasses.add(createGenXSPIRVWriterAdaptorPass());
896+
893897
switch (Action) {
894898
case Backend_EmitNothing:
895899
break;

clang/lib/CodeGen/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ if (MSVC)
3131
set_source_files_properties(CodeGenModule.cpp PROPERTIES COMPILE_FLAGS /bigobj)
3232
endif()
3333

34+
get_property(LLVMGenXIntrinsics_SOURCE_DIR GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP)
35+
get_property(LLVMGenXIntrinsics_BINARY_DIR GLOBAL PROPERTY LLVMGenXIntrinsics_BINARY_PROP)
36+
37+
include_directories(
38+
${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include
39+
${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include)
40+
3441
add_clang_library(clangCodeGen
3542
BackendUtil.cpp
3643
CGAtomic.cpp
@@ -91,8 +98,14 @@ add_clang_library(clangCodeGen
9198
TargetInfo.cpp
9299
VarBypassDetector.cpp
93100

101+
ADDITIONAL_HEADER_DIRS
102+
${LLVMGenXIntrinsics_SOURCE_DIR}/GenXIntrinsics/include
103+
${LLVMGenXIntrinsics_BINARY_DIR}/GenXIntrinsics/include
104+
94105
DEPENDS
106+
${codegen_deps}
95107
intrinsics_gen
108+
LLVMGenXIntrinsics
96109

97110
LINK_LIBS
98111
clangAnalysis
@@ -102,4 +115,5 @@ add_clang_library(clangCodeGen
102115
clangFrontend
103116
clangLex
104117
clangSerialization
118+
LLVMGenXIntrinsics
105119
)

clang/lib/CodeGen/CodeGenModule.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -641,12 +641,12 @@ void CodeGenModule::Release() {
641641
SPIRVerMD->addOperand(llvm::MDNode::get(Ctx, SPIRVerElts));
642642
// We are trying to look like OpenCL C++ for SPIR-V translator.
643643
// 4 - OpenCL_CPP, 100000 - OpenCL C++ version 1.0
644-
// 6 - ESIMD, if any kernel or function is an explicit SIMD one
644+
// 0 - ESIMD, if any kernel or function is an explicit SIMD one
645645
int Lang = llvm::any_of(TheModule,
646646
[](const auto &F) {
647647
return F.getMetadata("sycl_explicit_simd");
648648
})
649-
? 6
649+
? 0
650650
: 4;
651651

652652
llvm::Metadata *SPIRVSourceElts[] = {

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7658,6 +7658,8 @@ void SPIRVTranslator::ConstructJob(Compilation &C, const JobAction &JA,
76587658
if (getToolChain().getTriple().isSYCLDeviceEnvironment()) {
76597659
TranslatorArgs.push_back("-spirv-max-version=1.1");
76607660
std::string ExtArg("-spirv-ext=+all");
7661+
if (C.getArgs().hasArg(options::OPT_fsycl_esimd))
7662+
TranslatorArgs.push_back("-spirv-allow-unknown-intrinsics");
76617663
// Disable SPV_INTEL_usm_storage_classes by default since it adds new
76627664
// storage classes that represent global_device and global_host address
76637665
// spaces, which are not supported for all targets. With the extension

clang/lib/Driver/ToolChains/SYCL.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ const char *SYCL::Linker::constructLLVMSpirvCommand(Compilation &C,
4242
} else {
4343
CmdArgs.push_back("-spirv-max-version=1.1");
4444
CmdArgs.push_back("-spirv-ext=+all");
45+
if (C.getArgs().hasArg(options::OPT_fsycl_esimd))
46+
CmdArgs.push_back("-spirv-allow-unknown-intrinsics");
4547
CmdArgs.push_back("-o");
4648
CmdArgs.push_back(Output.getFilename());
4749
}

clang/lib/Sema/SemaDeclAttr.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3014,6 +3014,13 @@ static void handleSubGroupSize(Sema &S, Decl *D, const ParsedAttr &AL) {
30143014
if (D->getAttr<IntelReqdSubGroupSizeAttr>())
30153015
S.Diag(AL.getLoc(), diag::warn_duplicate_attribute) << AL;
30163016

3017+
if (AL.getAttributeSpellingListIndex() ==
3018+
IntelReqdSubGroupSizeAttr::CXX11_cl_intel_reqd_sub_group_size) {
3019+
S.Diag(AL.getLoc(), diag::warn_attribute_spelling_deprecated) << AL;
3020+
S.Diag(AL.getLoc(), diag::note_spelling_suggestion)
3021+
<< "'intel::reqd_sub_group_size'";
3022+
}
3023+
30173024
S.addIntelReqdSubGroupSizeAttr(D, AL, E);
30183025
}
30193026

clang/lib/Sema/SemaSYCL.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,8 +354,7 @@ class MarkDeviceFunction : public RecursiveASTVisitor<MarkDeviceFunction> {
354354
// all functions used by kernel have already been parsed and have
355355
// definitions.
356356
if (RecursiveSet.count(Callee) && !ConstexprDepth) {
357-
SemaRef.Diag(e->getExprLoc(), diag::err_sycl_restrict)
358-
<< Sema::KernelCallRecursiveFunction;
357+
SemaRef.Diag(e->getExprLoc(), diag::warn_sycl_restrict_recursion);
359358
SemaRef.Diag(Callee->getSourceRange().getBegin(),
360359
diag::note_sycl_recursive_function_declared_here)
361360
<< Sema::KernelCallRecursiveFunction;

clang/test/CodeGenSYCL/esimd-private-global.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ SYCL_EXTERNAL void init_vc(int x) {
1111
vc = x;
1212
// CHECK: store i32 %0, i32* @vc
1313
}
14-
// CHECK: attributes #0 = { "genx_byte_offset"="17" "genx_volatile" }
14+
// CHECK: attributes #0 = {{.*"VCByteOffset"="17".*"VCVolatile"}}

clang/test/CodeGenSYCL/esimd_metadata1.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@ void bar() {
1919
}
2020

2121
// CHECK: !spirv.Source = !{[[LANG:![0-9]+]]}
22-
// CHECK: [[LANG]] = !{i32 6, i32 100000}
22+
// CHECK: [[LANG]] = !{i32 0, i32 {{[0-9]+}}}
2323
// CHECK: ![[EMPTY]] = !{}
2424
// CHECK: ![[REQD_SIZE]] = !{i32 1}

clang/test/CodeGenSYCL/esimd_metadata2.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ void bar() {
3535
}
3636

3737
// CHECK: !spirv.Source = !{[[LANG:![0-9]+]]}
38-
// CHECK: [[LANG]] = !{i32 6, i32 100000}
38+
// CHECK: [[LANG]] = !{i32 0, i32 {{[0-9]+}}}
3939
// CHECK-ESIMD: ![[SGSIZE1]] = !{i32 1}

clang/test/Driver/sycl-offload.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,10 @@
593593
// CHECK-LINK-SYCL-DEBUG: "{{.*}}link{{(.exe)?}}"
594594
// CHECK-LINK-SYCL-DEBUG: "-defaultlib:sycld.lib"
595595

596+
/// Check "-spirv-allow-unknown-intrinsics" option is emitted for llvm-spirv tool for esimd mode
597+
// RUN: %clangxx %s -fsycl -fsycl-explicit-simd -### 2>&1 | FileCheck %s --check-prefix=CHK-FSYCL-ESIMD
598+
// CHK-FSYCL-ESIMD: llvm-spirv{{.*}}-spirv-allow-unknown-intrinsics
599+
596600
/// ###########################################################################
597601

598602
/// Check -Xsycl-target-backend triggers error when multiple triples are used.

clang/test/SemaSYCL/reqd-sub-group-size-device.cpp

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
11
// RUN: %clang_cc1 -fsycl -fsycl-is-device -fsyntax-only -verify -DTRIGGER_ERROR %s
22
// RUN: %clang_cc1 -fsycl -fsycl-is-device -ast-dump %s | FileCheck %s
33

4-
[[cl::intel_reqd_sub_group_size(4)]] void foo() {} // expected-note {{conflicting attribute is here}}
4+
[[intel::reqd_sub_group_size(4)]] void foo() {} // expected-note {{conflicting attribute is here}}
55
// expected-note@-1 {{conflicting attribute is here}}
6-
[[cl::intel_reqd_sub_group_size(32)]] void baz() {} // expected-note {{conflicting attribute is here}}
6+
[[intel::reqd_sub_group_size(32)]] void baz() {} // expected-note {{conflicting attribute is here}}
77

88
class Functor16 {
99
public:
10+
// expected-warning@+2 {{attribute 'intel_reqd_sub_group_size' is deprecated}}
11+
// expected-note@+1 {{did you mean to use 'intel::reqd_sub_group_size' instead?}}
1012
[[cl::intel_reqd_sub_group_size(16)]] void operator()() {}
1113
};
1214

1315
class Functor8 { // expected-error {{conflicting attributes applied to a SYCL kernel}}
1416
public:
15-
[[cl::intel_reqd_sub_group_size(8)]] void operator()() { // expected-note {{conflicting attribute is here}}
17+
[[intel::reqd_sub_group_size(8)]] void operator()() { // expected-note {{conflicting attribute is here}}
1618
foo();
1719
}
1820
};
1921

22+
class Functor4 {
23+
public:
24+
[[intel::reqd_sub_group_size(12)]] void operator()() {}
25+
};
26+
2027
class Functor {
2128
public:
2229
void operator()() {
@@ -46,24 +53,31 @@ void bar() {
4653
});
4754
#endif
4855

49-
kernel<class kernel_name5>([]() [[cl::intel_reqd_sub_group_size(2)]] { });
50-
kernel<class kernel_name6>([]() [[cl::intel_reqd_sub_group_size(4)]] { foo(); });
56+
kernel<class kernel_name5>([]() [[intel::reqd_sub_group_size(2)]]{});
57+
kernel<class kernel_name6>([]() [[intel::reqd_sub_group_size(4)]] { foo(); });
58+
// expected-warning@+2 {{attribute 'intel_reqd_sub_group_size' is deprecated}}
59+
// expected-note@+1 {{did you mean to use 'intel::reqd_sub_group_size' instead?}}
60+
kernel<class kernel_name7>([]() [[cl::intel_reqd_sub_group_size(6)]]{});
61+
62+
Functor4 f4;
63+
kernel<class kernel_name8>(f4);
5164
}
5265

53-
[[cl::intel_reqd_sub_group_size(16)]] SYCL_EXTERNAL void B();
54-
[[cl::intel_reqd_sub_group_size(16)]] void A() {
66+
[[intel::reqd_sub_group_size(16)]] SYCL_EXTERNAL void B();
67+
[[intel::reqd_sub_group_size(16)]] void A() {
5568
}
56-
[[cl::intel_reqd_sub_group_size(16)]] SYCL_EXTERNAL void B() {
69+
70+
[[intel::reqd_sub_group_size(16)]] SYCL_EXTERNAL void B() {
5771
A();
5872
}
5973

6074
#ifdef TRIGGER_ERROR
6175
// expected-note@+1 {{conflicting attribute is here}}
62-
[[cl::intel_reqd_sub_group_size(2)]] void sg_size2() {}
76+
[[intel::reqd_sub_group_size(2)]] void sg_size2() {}
6377

6478
// expected-note@+2 {{conflicting attribute is here}}
6579
// expected-error@+1 {{conflicting attributes applied to a SYCL kernel}}
66-
[[cl::intel_reqd_sub_group_size(4)]] __attribute__((sycl_device)) void sg_size4() {
80+
[[intel::reqd_sub_group_size(4)]] __attribute__((sycl_device)) void sg_size4() {
6781
sg_size2();
6882
}
6983
#endif
@@ -77,3 +91,9 @@ void bar() {
7791
// CHECK: FunctionDecl {{.*}} {{.*}}kernel_name5
7892
// CHECK: IntelReqdSubGroupSizeAttr {{.*}}
7993
// CHECK-NEXT: IntegerLiteral{{.*}}2{{$}}
94+
// CHECK: FunctionDecl {{.*}} {{.*}}kernel_name7
95+
// CHECK: IntelReqdSubGroupSizeAttr {{.*}}
96+
// CHECK-NEXT: IntegerLiteral{{.*}}6{{$}}
97+
// CHECK: FunctionDecl {{.*}} {{.*}}kernel_name8
98+
// CHECK: IntelReqdSubGroupSizeAttr {{.*}}
99+
// CHECK-NEXT: IntegerLiteral{{.*}}12{{$}}

clang/test/SemaSYCL/restrict-recursion3.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -fsycl -fsycl-is-device -fcxx-exceptions -Wno-return-type -Wno-sycl-strict -verify -fsyntax-only -std=c++17 %s
1+
// RUN: %clang_cc1 -fsycl -fsycl-is-device -fcxx-exceptions -Wno-return-type -Wno-error=sycl-strict -verify -fsyntax-only -std=c++17 %s
22

33
// This recursive function is not called from sycl kernel,
44
// so it should not be diagnosed.
@@ -16,6 +16,7 @@ using myFuncDef = int(int, int);
1616

1717
typedef __typeof__(sizeof(int)) size_t;
1818

19+
// expected-warning@+1 {{SYCL 1.2.1 specification does not allow 'sycl_device' attribute applied to a function with a raw pointer return type}}
1920
SYCL_EXTERNAL
2021
void *operator new(size_t);
2122

@@ -34,7 +35,7 @@ template <typename name, typename Func>
3435
__attribute__((sycl_kernel)) void kernel_single_task2(Func kernelFunc) {
3536
// expected-note@+1 {{called by 'kernel_single_task2}}
3637
kernelFunc();
37-
// expected-error@+1 2{{SYCL kernel cannot call a recursive function}}
38+
// expected-warning@+1 2{{SYCL kernel cannot call a recursive function}}
3839
kernel_single_task2<name, Func>(kernelFunc);
3940
}
4041

clang/test/SemaSYCL/restrict-recursion4.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %clang_cc1 -fsycl -fsycl-is-device -fcxx-exceptions -Wno-return-type -Wno-sycl-strict -verify -fsyntax-only -std=c++17 %s
1+
// RUN: %clang_cc1 -fsycl -fsycl-is-device -fcxx-exceptions -Wno-return-type -Wno-error=sycl-strict -verify -fsyntax-only -std=c++17 %s
22

33
// This recursive function is not called from sycl kernel,
44
// so it should not be diagnosed.
@@ -10,21 +10,22 @@ int fib(int n) {
1010

1111
// expected-note@+1 2{{function implemented using recursion declared here}}
1212
void kernel2(void) {
13-
// expected-error@+1 {{SYCL kernel cannot call a recursive function}}
13+
// expected-warning@+1 {{SYCL kernel cannot call a recursive function}}
1414
kernel2();
1515
}
1616

1717
using myFuncDef = int(int, int);
1818

1919
typedef __typeof__(sizeof(int)) size_t;
2020

21+
// expected-warning@+1 {{SYCL 1.2.1 specification does not allow 'sycl_device' attribute applied to a function with a raw pointer return type}}
2122
SYCL_EXTERNAL
2223
void *operator new(size_t);
2324

2425
void usage2(myFuncDef functionPtr) {
2526
// expected-error@+1 {{SYCL kernel cannot allocate storage}}
2627
int *ip = new int;
27-
// expected-error@+1 {{SYCL kernel cannot call a recursive function}}
28+
// expected-warning@+1 {{SYCL kernel cannot call a recursive function}}
2829
kernel2();
2930
}
3031

clang/test/SemaSYCL/sycl-device-reqd-sub-group-size-template.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// RUN: %clang_cc1 -fsycl -fsycl-is-device -fsyntax-only -ast-dump -verify -pedantic %s | FileCheck %s
22

3-
// Test that checkes template parameter support for 'intel_reqd_sub_group_size' attribute on sycl device.
3+
// Test that checkes template parameter support for 'reqd_sub_group_size' attribute on sycl device.
44

55
template <int SIZE>
66
class KernelFunctor {
77
public:
8-
//expected-error@+1{{'intel_reqd_sub_group_size' attribute requires a positive integral compile time constant expression}}
9-
[[cl::intel_reqd_sub_group_size(SIZE)]] void operator()() {}
8+
// expected-error@+1{{'reqd_sub_group_size' attribute requires a positive integral compile time constant expression}}
9+
[[intel::reqd_sub_group_size(SIZE)]] void operator()() {}
1010
};
1111

1212
int main() {

clang/test/SemaSYCL/sycl-esimd.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ void kernel0(F f) __attribute__((sycl_kernel)) {
1717
}
1818

1919
// expected-note@+1{{conflicting attribute is here}}
20-
[[cl::intel_reqd_sub_group_size(2)]] void g0() {}
20+
[[intel::reqd_sub_group_size(2)]] void g0() {}
2121

2222
void test0() {
2323
// expected-error@+2{{conflicting attributes applied to a SYCL kernel}}

llvm/lib/SYCLLowerIR/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ if (NOT TARGET LLVMGenXIntrinsics)
77
include(FetchContent)
88
FetchContent_Declare(vc-intrinsics
99
GIT_REPOSITORY https://github.com/intel/vc-intrinsics.git
10-
GIT_TAG cce6e48c28eb850d7dadd30841c0d95f009bbca1
10+
GIT_TAG 5e35898100ebe3747ea50c91b05e679757b25703
1111
)
1212
FetchContent_MakeAvailable(vc-intrinsics)
1313
FetchContent_GetProperties(vc-intrinsics)
@@ -28,6 +28,9 @@ if (NOT TARGET LLVMGenXIntrinsics)
2828
)
2929
endif()
3030

31+
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_SOURCE_PROP ${LLVMGenXIntrinsics_SOURCE_DIR})
32+
set_property(GLOBAL PROPERTY LLVMGenXIntrinsics_BINARY_PROP ${LLVMGenXIntrinsics_BINARY_DIR})
33+
3134
add_llvm_component_library(LLVMSYCLLowerIR
3235
LowerWGScope.cpp
3336
LowerESIMD.cpp

0 commit comments

Comments
 (0)