Skip to content

Commit 9eedf33

Browse files
committed
Merge remote-tracking branch 'intel/sycl' into remapping_virtual_memory_range
2 parents ad14c6b + a0b5f56 commit 9eedf33

Some content is hidden

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

49 files changed

+1190
-336
lines changed

libdevice/CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@ set(CMAKE_MODULE_PATH
88
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
99
)
1010

11+
if(EXISTS ${FETCHCONTENT_BASE_DIR}/unified-runtime-src)
12+
set(UR_SANITIZER_INCLUDE_DIR
13+
${FETCHCONTENT_BASE_DIR}/unified-runtime-src/source/loader/layers/sanitizer)
14+
elseif(EXISTS ${SYCL_UR_SOURCE_DIR})
15+
set(UR_SANITIZER_INCLUDE_DIR
16+
${SYCL_UR_SOURCE_DIR}/source/loader/layers/sanitizer)
17+
else()
18+
message(WARNING "Unified Runtime source directory is not provided, \
19+
will not build libdevice sanitizer")
20+
endif()
21+
1122
# Build libdevice for SYCL.
1223
include(SYCLLibdevice)
1324

libdevice/cmake/modules/SYCLLibdevice.cmake

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,10 +200,10 @@ set(cmath_obj_deps device_math.h device.h sycl-compiler)
200200
set(imf_obj_deps device_imf.hpp imf_half.hpp imf_bf16.hpp imf_rounding_op.hpp imf_impl_utils.hpp device.h sycl-compiler)
201201
set(itt_obj_deps device_itt.h spirv_vars.h device.h sycl-compiler)
202202
set(bfloat16_obj_deps sycl-headers sycl-compiler)
203-
if (NOT MSVC)
203+
if (NOT MSVC AND UR_SANITIZER_INCLUDE_DIR)
204204
set(sanitizer_obj_deps
205205
device.h atomic.hpp spirv_vars.h
206-
include/asan_libdevice.hpp
206+
${UR_SANITIZER_INCLUDE_DIR}/asan_libdevice.hpp
207207
include/sanitizer_utils.hpp
208208
include/spir_global_var.hpp
209209
sycl-compiler)
@@ -268,10 +268,12 @@ if(MSVC)
268268
SRC msvc_math.cpp
269269
DEPENDENCIES ${cmath_obj_deps})
270270
else()
271-
add_devicelibs(libsycl-sanitizer
272-
SRC sanitizer_utils.cpp
273-
DEPENDENCIES ${sanitizer_obj_deps}
274-
EXTRA_OPTS -fno-sycl-instrument-device-code)
271+
if(UR_SANITIZER_INCLUDE_DIR)
272+
add_devicelibs(libsycl-sanitizer
273+
SRC sanitizer_utils.cpp
274+
DEPENDENCIES ${sanitizer_obj_deps}
275+
EXTRA_OPTS -fno-sycl-instrument-device-code -I${UR_SANITIZER_INCLUDE_DIR})
276+
endif()
275277
endif()
276278

277279
add_devicelibs(libsycl-fallback-cassert

libdevice/include/asan_libdevice.hpp

Lines changed: 0 additions & 157 deletions
This file was deleted.

libdevice/sanitizer_utils.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9+
#include "asan_libdevice.hpp"
910
#include "atomic.hpp"
1011
#include "device.h"
1112
#include "spirv_vars.h"
1213

13-
#include "include/asan_libdevice.hpp"
1414
#include "include/sanitizer_utils.hpp"
1515

1616
using uptr = uintptr_t;
@@ -381,8 +381,11 @@ void __asan_internal_report_save(DeviceSanitizerErrorType error_type) {
381381
auto &SanitizerReport = ((__SYCL_GLOBAL__ LaunchInfo *)__AsanLaunchInfo)
382382
->SanitizerReport[WG_LID % ASAN_MAX_NUM_REPORTS];
383383

384-
if (atomicCompareAndSet(&SanitizerReport.Flag, Desired, Expected) ==
385-
Expected) {
384+
if (atomicCompareAndSet(
385+
&(((__SYCL_GLOBAL__ LaunchInfo *)__AsanLaunchInfo)->ReportFlag), 1,
386+
0) == 0 &&
387+
atomicCompareAndSet(&SanitizerReport.Flag, Desired, Expected) ==
388+
Expected) {
386389
SanitizerReport.ErrorType = error_type;
387390
SanitizerReport.IsRecover = false;
388391

@@ -415,8 +418,12 @@ void __asan_internal_report_save(
415418
auto &SanitizerReport = ((__SYCL_GLOBAL__ LaunchInfo *)__AsanLaunchInfo)
416419
->SanitizerReport[WG_LID % ASAN_MAX_NUM_REPORTS];
417420

418-
if (atomicCompareAndSet(&SanitizerReport.Flag, Desired, Expected) ==
419-
Expected) {
421+
if ((is_recover ||
422+
atomicCompareAndSet(
423+
&(((__SYCL_GLOBAL__ LaunchInfo *)__AsanLaunchInfo)->ReportFlag), 1,
424+
0) == 0) &&
425+
atomicCompareAndSet(&SanitizerReport.Flag, Desired, Expected) ==
426+
Expected) {
420427

421428
int FileLength = 0;
422429
int FuncLength = 0;

llvm-spirv/lib/SPIRV/SPIRVReader.cpp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4664,22 +4664,9 @@ bool SPIRVToLLVM::transVectorComputeMetadata(SPIRVFunction *BF) {
46644664
std::to_string(Kind));
46654665
F->addParamAttr(ArgNo, Attr);
46664666
}
4667-
if (BA->hasDecorate(internal::DecorationFuncParamKindINTEL, 0, &Kind)) {
4668-
Attribute Attr = Attribute::get(*Context, kVCMetadata::VCArgumentKind,
4669-
std::to_string(Kind));
4670-
F->addParamAttr(ArgNo, Attr);
4671-
}
46724667
SEVAttr = translateSEVMetadata(BA, F->getContext());
46734668
if (SEVAttr)
46744669
F->addParamAttr(ArgNo, SEVAttr.value());
4675-
if (BA->hasDecorate(internal::DecorationFuncParamDescINTEL)) {
4676-
auto Desc =
4677-
BA->getDecorationStringLiteral(internal::DecorationFuncParamDescINTEL)
4678-
.front();
4679-
Attribute Attr =
4680-
Attribute::get(*Context, kVCMetadata::VCArgumentDesc, Desc);
4681-
F->addParamAttr(ArgNo, Attr);
4682-
}
46834670
if (BA->hasDecorate(DecorationMediaBlockIOINTEL)) {
46844671
assert(BA->getType()->isTypeImage() &&
46854672
"MediaBlockIOINTEL decoration is valid only on image parameters");

llvm-spirv/lib/SPIRV/SPIRVWriter.cpp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,19 +1070,6 @@ void LLVMToSPIRVBase::transVectorComputeMetadata(Function *F) {
10701070
if (Attrs.hasParamAttr(ArgNo, kVCMetadata::VCSingleElementVector))
10711071
translateSEVDecoration(
10721072
Attrs.getParamAttr(ArgNo, kVCMetadata::VCSingleElementVector), BA);
1073-
if (Attrs.hasParamAttr(ArgNo, kVCMetadata::VCArgumentKind)) {
1074-
SPIRVWord Kind;
1075-
Attrs.getParamAttr(ArgNo, kVCMetadata::VCArgumentKind)
1076-
.getValueAsString()
1077-
.getAsInteger(0, Kind);
1078-
BA->addDecorate(internal::DecorationFuncParamKindINTEL, Kind);
1079-
}
1080-
if (Attrs.hasParamAttr(ArgNo, kVCMetadata::VCArgumentDesc)) {
1081-
StringRef Desc =
1082-
Attrs.getParamAttr(ArgNo, kVCMetadata::VCArgumentDesc)
1083-
.getValueAsString();
1084-
BA->addDecorate(new SPIRVDecorateFuncParamDescAttr(BA, Desc.str()));
1085-
}
10861073
if (Attrs.hasParamAttr(ArgNo, kVCMetadata::VCMediaBlockIO)) {
10871074
assert(BA->getType()->isTypeImage() &&
10881075
"VCMediaBlockIO attribute valid only on image parameters");

llvm-spirv/lib/SPIRV/VectorComputeUtil.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,6 @@ const static char VCGlobalVariable[] = "VCGlobalVariable";
108108
const static char VCVolatile[] = "VCVolatile";
109109
const static char VCByteOffset[] = "VCByteOffset";
110110
const static char VCSIMTCall[] = "VCSIMTCall";
111-
const static char VCArgumentKind[] = "VCArgumentKind";
112-
const static char VCArgumentDesc[] = "VCArgumentDesc";
113111
const static char VCCallable[] = "VCCallable";
114112
const static char VCSingleElementVector[] = "VCSingleElementVector";
115113
const static char VCFCEntry[] = "VCFCEntry";

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVDecorate.cpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,6 @@ void SPIRVDecorate::encode(spv_ostream &O) const {
124124
case DecorationUserSemantic:
125125
SPIRVDecorateUserSemanticAttr::encodeLiterals(Encoder, Literals);
126126
break;
127-
case internal::DecorationFuncParamDescINTEL:
128-
SPIRVDecorateFuncParamDescAttr::encodeLiterals(Encoder, Literals);
129-
break;
130127
case internal::DecorationHostAccessINTEL:
131128
SPIRVDecorateHostAccessINTELLegacy::encodeLiterals(Encoder, Literals);
132129
break;
@@ -162,9 +159,6 @@ void SPIRVDecorate::decode(std::istream &I) {
162159
case DecorationUserSemantic:
163160
SPIRVDecorateUserSemanticAttr::decodeLiterals(Decoder, Literals);
164161
break;
165-
case internal::DecorationFuncParamDescINTEL:
166-
SPIRVDecorateFuncParamDescAttr::decodeLiterals(Decoder, Literals);
167-
break;
168162
case internal::DecorationHostAccessINTEL:
169163
SPIRVDecorateHostAccessINTELLegacy::decodeLiterals(Decoder, Literals);
170164
break;
@@ -206,9 +200,6 @@ void SPIRVMemberDecorate::encode(spv_ostream &O) const {
206200
case DecorationUserSemantic:
207201
SPIRVDecorateUserSemanticAttr::encodeLiterals(Encoder, Literals);
208202
break;
209-
case internal::DecorationFuncParamDescINTEL:
210-
SPIRVDecorateFuncParamDescAttr::encodeLiterals(Encoder, Literals);
211-
break;
212203
default:
213204
Encoder << Literals;
214205
}
@@ -232,9 +223,6 @@ void SPIRVMemberDecorate::decode(std::istream &I) {
232223
case DecorationUserSemantic:
233224
SPIRVDecorateUserSemanticAttr::decodeLiterals(Decoder, Literals);
234225
break;
235-
case internal::DecorationFuncParamDescINTEL:
236-
SPIRVDecorateFuncParamDescAttr::decodeLiterals(Decoder, Literals);
237-
break;
238226
default:
239227
Decoder >> Literals;
240228
}

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVDecorate.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -521,15 +521,6 @@ class SPIRVDecorateUserSemanticAttr
521521
: SPIRVDecorateStrAttrBase(TheTarget, AnnotateString) {}
522522
};
523523

524-
class SPIRVDecorateFuncParamDescAttr
525-
: public SPIRVDecorateStrAttrBase<internal::DecorationFuncParamDescINTEL> {
526-
public:
527-
// Complete constructor for UserSemantic decoration
528-
SPIRVDecorateFuncParamDescAttr(SPIRVEntry *TheTarget,
529-
const std::string &AnnotateString)
530-
: SPIRVDecorateStrAttrBase(TheTarget, AnnotateString) {}
531-
};
532-
533524
class SPIRVDecorateMergeINTELAttr : public SPIRVDecorate {
534525
public:
535526
// Complete constructor for MergeINTEL decoration

llvm-spirv/lib/SPIRV/libSPIRV/SPIRVEnum.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -448,10 +448,6 @@ template <> inline void SPIRVMap<Decoration, SPIRVCapVec>::init() {
448448
ADD_VEC_INIT(DecorationFuncParamIOKindINTEL, {CapabilityVectorComputeINTEL});
449449
ADD_VEC_INIT(DecorationStackCallINTEL, {CapabilityVectorComputeINTEL});
450450
ADD_VEC_INIT(DecorationSIMTCallINTEL, {CapabilityVectorComputeINTEL});
451-
ADD_VEC_INIT(internal::DecorationFuncParamKindINTEL,
452-
{CapabilityVectorComputeINTEL});
453-
ADD_VEC_INIT(internal::DecorationFuncParamDescINTEL,
454-
{CapabilityVectorComputeINTEL});
455451
ADD_VEC_INIT(DecorationBurstCoalesceINTEL,
456452
{CapabilityFPGAMemoryAccessesINTEL});
457453
ADD_VEC_INIT(DecorationCacheSizeINTEL, {CapabilityFPGAMemoryAccessesINTEL});

0 commit comments

Comments
 (0)