Skip to content

Commit bd3df96

Browse files
author
Jakub Chlanda
committed
Merge remote-tracking branch 'upstream/sycl' into stefanatwork/ptx_out
2 parents a5eee25 + 9fd7358 commit bd3df96

File tree

46 files changed

+583
-377
lines changed

Some content is hidden

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

46 files changed

+583
-377
lines changed

.ci/metrics/requirements.lock.txt

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -186,34 +186,38 @@ charset-normalizer==3.4.0 \
186186
--hash=sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079 \
187187
--hash=sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482
188188
# via requests
189-
cryptography==43.0.3 \
190-
--hash=sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362 \
191-
--hash=sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4 \
192-
--hash=sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa \
193-
--hash=sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83 \
194-
--hash=sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff \
195-
--hash=sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805 \
196-
--hash=sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6 \
197-
--hash=sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664 \
198-
--hash=sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08 \
199-
--hash=sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e \
200-
--hash=sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18 \
201-
--hash=sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f \
202-
--hash=sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73 \
203-
--hash=sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5 \
204-
--hash=sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984 \
205-
--hash=sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd \
206-
--hash=sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3 \
207-
--hash=sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e \
208-
--hash=sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405 \
209-
--hash=sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2 \
210-
--hash=sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c \
211-
--hash=sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995 \
212-
--hash=sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73 \
213-
--hash=sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16 \
214-
--hash=sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7 \
215-
--hash=sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd \
216-
--hash=sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7
189+
cryptography==44.0.1 \
190+
--hash=sha256:00918d859aa4e57db8299607086f793fa7813ae2ff5a4637e318a25ef82730f7 \
191+
--hash=sha256:1e8d181e90a777b63f3f0caa836844a1182f1f265687fac2115fcf245f5fbec3 \
192+
--hash=sha256:1f9a92144fa0c877117e9748c74501bea842f93d21ee00b0cf922846d9d0b183 \
193+
--hash=sha256:21377472ca4ada2906bc313168c9dc7b1d7ca417b63c1c3011d0c74b7de9ae69 \
194+
--hash=sha256:24979e9f2040c953a94bf3c6782e67795a4c260734e5264dceea65c8f4bae64a \
195+
--hash=sha256:2a46a89ad3e6176223b632056f321bc7de36b9f9b93b2cc1cccf935a3849dc62 \
196+
--hash=sha256:322eb03ecc62784536bc173f1483e76747aafeb69c8728df48537eb431cd1911 \
197+
--hash=sha256:436df4f203482f41aad60ed1813811ac4ab102765ecae7a2bbb1dbb66dcff5a7 \
198+
--hash=sha256:4f422e8c6a28cf8b7f883eb790695d6d45b0c385a2583073f3cec434cc705e1a \
199+
--hash=sha256:53f23339864b617a3dfc2b0ac8d5c432625c80014c25caac9082314e9de56f41 \
200+
--hash=sha256:5fed5cd6102bb4eb843e3315d2bf25fede494509bddadb81e03a859c1bc17b83 \
201+
--hash=sha256:610a83540765a8d8ce0f351ce42e26e53e1f774a6efb71eb1b41eb01d01c3d12 \
202+
--hash=sha256:6c8acf6f3d1f47acb2248ec3ea261171a671f3d9428e34ad0357148d492c7864 \
203+
--hash=sha256:6f76fdd6fd048576a04c5210d53aa04ca34d2ed63336d4abd306d0cbe298fddf \
204+
--hash=sha256:72198e2b5925155497a5a3e8c216c7fb3e64c16ccee11f0e7da272fa93b35c4c \
205+
--hash=sha256:887143b9ff6bad2b7570da75a7fe8bbf5f65276365ac259a5d2d5147a73775f2 \
206+
--hash=sha256:888fcc3fce0c888785a4876ca55f9f43787f4c5c1cc1e2e0da71ad481ff82c5b \
207+
--hash=sha256:8e6a85a93d0642bd774460a86513c5d9d80b5c002ca9693e63f6e540f1815ed0 \
208+
--hash=sha256:94f99f2b943b354a5b6307d7e8d19f5c423a794462bde2bf310c770ba052b1c4 \
209+
--hash=sha256:9b336599e2cb77b1008cb2ac264b290803ec5e8e89d618a5e978ff5eb6f715d9 \
210+
--hash=sha256:a2d8a7045e1ab9b9f803f0d9531ead85f90c5f2859e653b61497228b18452008 \
211+
--hash=sha256:b8272f257cf1cbd3f2e120f14c68bff2b6bdfcc157fafdee84a1b795efd72862 \
212+
--hash=sha256:bf688f615c29bfe9dfc44312ca470989279f0e94bb9f631f85e3459af8efc009 \
213+
--hash=sha256:d9c5b9f698a83c8bd71e0f4d3f9f839ef244798e5ffe96febfa9714717db7af7 \
214+
--hash=sha256:dd7c7e2d71d908dc0f8d2027e1604102140d84b155e658c20e8ad1304317691f \
215+
--hash=sha256:df978682c1504fc93b3209de21aeabf2375cb1571d4e61907b3e7a2540e83026 \
216+
--hash=sha256:e403f7f766ded778ecdb790da786b418a9f2394f36e8cc8b796cc056ab05f44f \
217+
--hash=sha256:eb3889330f2a4a148abead555399ec9a32b13b7c8ba969b72d8e500eb7ef84cd \
218+
--hash=sha256:f4daefc971c2d1f82f03097dc6f216744a6cd2ac0f04c68fb935ea2ba2a0d420 \
219+
--hash=sha256:f51f5705ab27898afda1aaa430f34ad90dc117421057782022edf0600bec5f14 \
220+
--hash=sha256:fd0ee90072861e276b0ff08bd627abec29e32a53b2be44e41dbcdf87cbee2b00
217221
# via pyjwt
218222
deprecated==1.2.15 \
219223
--hash=sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320 \
@@ -232,8 +236,8 @@ pygithub==2.5.0 \
232236
--hash=sha256:e1613ac508a9be710920d26eb18b1905ebd9926aa49398e88151c1b526aad3cf
233237
# via -r ./requirements.txt
234238
pyjwt[crypto]==2.10.1 \
235-
--hash=sha256:543b77207db656de204372350926bed5a86201c4cbff159f623f79c7bb487a15 \
236-
--hash=sha256:7628a7eb7938959ac1b26e819a1df0fd3259505627b575e4bad6d08f76db695c
239+
--hash=sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953 \
240+
--hash=sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb
237241
# via pygithub
238242
pynacl==1.5.0 \
239243
--hash=sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858 \

llvm/docs/requirements-hashed.txt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@ imagesize==1.4.1 \
151151
--hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \
152152
--hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a
153153
# via sphinx
154-
jinja2==3.1.5 \
155-
--hash=sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369 \
156-
--hash=sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d
154+
jinja2==3.1.6 \
155+
--hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \
156+
--hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67
157157
# via
158158
# myst-parser
159159
# sphinx
@@ -334,10 +334,6 @@ sphinx==8.1.3 \
334334
# sphinx-automodapi
335335
# sphinx-basic-ng
336336
# sphinx-reredirects
337-
# sphinxcontrib-devhelp
338-
# sphinxcontrib-htmlhelp
339-
# sphinxcontrib-qthelp
340-
# sphinxcontrib-serializinghtml
341337
sphinx-automodapi==0.18.0 \
342338
--hash=sha256:022860385590768f52d4f6e19abb83b2574772d2721fb4050ecdb6e593a1a440 \
343339
--hash=sha256:7bf9d9a2cb67a5389c51071cfd86674ca3892ca5d5943f95de4553d6f35dddae

llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1830,7 +1830,8 @@ void AddressSanitizer::instrumentSyclStaticLocalMemory(
18301830
// Instument dynamic local memory
18311831
bool AddressSanitizer::instrumentSyclDynamicLocalMemory(
18321832
Function &F, ArrayRef<Instruction *> RetVec) {
1833-
InstrumentationIRBuilder IRB(F.getEntryBlock().getFirstNonPHI());
1833+
InstrumentationIRBuilder IRB(&F.getEntryBlock(),
1834+
F.getEntryBlock().getFirstNonPHIIt());
18341835

18351836
SmallVector<Argument *> LocalArgs;
18361837
for (auto &Arg : F.args()) {
@@ -1868,7 +1869,8 @@ bool AddressSanitizer::instrumentSyclDynamicLocalMemory(
18681869
// "__asan_launch" if it's an extended kernel, and store 0 if not
18691870
void AddressSanitizer::instrumentInitAsanLaunchInfo(
18701871
Function &F, const TargetLibraryInfo *TLI) {
1871-
InstrumentationIRBuilder IRB(F.getEntryBlock().getFirstNonPHI());
1872+
InstrumentationIRBuilder IRB(&F.getEntryBlock(),
1873+
F.getEntryBlock().getFirstNonPHIIt());
18721874
if (F.arg_size()) {
18731875
auto *LastArg = F.getArg(F.arg_size() - 1);
18741876
if (LastArg->getName() == "__asan_launch") {
@@ -2891,6 +2893,11 @@ void ModuleAddressSanitizer::instrumentDeviceGlobal(IRBuilder<> &IRB) {
28912893
StructType *StructTy = StructType::get(IntptrTy, IntptrTy, IntptrTy);
28922894

28932895
for (auto &G : M.globals()) {
2896+
// DeviceSanitizers cannot handle nameless globals, therefore we set a name
2897+
// for them so that we can handle them like regular globals.
2898+
if (G.getName().empty() && G.hasInternalLinkage())
2899+
G.setName("nameless_global");
2900+
28942901
if (isUnsupportedDeviceGlobal(&G))
28952902
continue;
28962903

llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,11 @@ void MemorySanitizerOnSpirv::instrumentGlobalVariables() {
939939
StructType *StructTy = StructType::get(IntptrTy, IntptrTy);
940940

941941
for (auto &G : M.globals()) {
942+
// DeviceSanitizers cannot handle nameless globals, therefore we set a name
943+
// for them so that we can handle them like regular globals.
944+
if (G.getName().empty() && G.hasInternalLinkage())
945+
G.setName("nameless_global");
946+
942947
if (isUnsupportedDeviceGlobal(&G)) {
943948
for (auto *User : G.users())
944949
if (auto *Inst = dyn_cast<Instruction>(User))
@@ -5844,7 +5849,9 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
58445849
if (isa<CallInst>(CB) && cast<CallInst>(CB).isMustTailCall())
58455850
return;
58465851

5847-
if (MayCheckCall && CB.hasRetAttr(Attribute::NoUndef)) {
5852+
// Since Spirv always does eager checking, the shadow of retval must be
5853+
// zeros
5854+
if (SpirOrSpirv || (MayCheckCall && CB.hasRetAttr(Attribute::NoUndef))) {
58485855
setShadow(&CB, getCleanShadow(&CB));
58495856
setOrigin(&CB, getCleanOrigin());
58505857
return;
@@ -5919,7 +5926,7 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
59195926

59205927
// The caller may still expect information passed over TLS if we pass our
59215928
// check
5922-
if (StoreShadow) {
5929+
if (StoreShadow && !SpirOrSpirv) {
59235930
IRB.CreateAlignedStore(Shadow, ShadowPtr, kShadowTLSAlignment);
59245931
if (MS.TrackOrigins && StoreOrigin)
59255932
IRB.CreateStore(getOrigin(RetVal), getOriginPtrForRetval());

llvm/test/Instrumentation/AddressSanitizer/SPIRV/device_global.ll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@ target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:
66
target triple = "spir64-unknown-unknown"
77

88
@dev_global = addrspace(1) global { [4 x i32] } zeroinitializer #0
9+
@0 = internal addrspace(1) global i32 0, align 4 ;nameless global
10+
@1 = internal addrspace(1) global i32 0, align 4 ;nameless global
911

1012
; CHECK: @dev_global = addrspace(1) global { { [4 x i32] }, [16 x i8] }
13+
; CHECK: @nameless_global
14+
; CHECK: @nameless_global.1
1115
; CHECK: @__AsanDeviceGlobalMetadata = appending local_unnamed_addr addrspace(1) global [1 x { i64, i64, i64 }] [{ i64, i64, i64 } { i64 16, i64 32, i64 ptrtoint (ptr addrspace(1) @dev_global to i64) }]
1216

1317
attributes #0 = { "sycl-device-global-size"="16" "sycl-device-image-scope" }

llvm/test/Instrumentation/MemorySanitizer/SPIRV/instrument_device_global.ll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ target triple = "spir64-unknown-unknown"
55
@.str = external addrspace(1) constant [59 x i8]
66
@__spirv_BuiltInGlobalInvocationId = external addrspace(1) constant <3 x i64>
77
@dev_global_no_users = dso_local addrspace(1) global { [4 x i32] } zeroinitializer
8+
@0 = internal global i32 0, align 4 ;nameless global
9+
@1 = internal global i32 0, align 4 ;nameless global
810

911
define spir_func void @_ZZZ4mainENKUlRN4sycl3_V17handlerEE_clES2_ENKUlvE_clEv() {
1012
entry:
1113
%call = call spir_func ptr addrspace(4) null(ptr addrspace(4) addrspacecast (ptr addrspace(1) @.str to ptr addrspace(4)), i64 0)
1214
ret void
1315
}
1416

17+
; CHECK: @nameless_global
18+
; CHECK: @nameless_global.1
1519
; CHECK: @__MsanDeviceGlobalMetadata
1620
; CHECK-NOT: @__spirv_BuiltInGlobalInvocationId
1721
; CHECK-NOT: @dev_global_no_users
Lines changed: 20 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -1,143 +1,36 @@
1-
; RUN: opt < %s -passes=msan -msan-instrumentation-with-call-threshold=0 -msan-eager-checks=1 -S | FileCheck %s
1+
; RUN: opt < %s -passes=msan -msan-instrumentation-with-call-threshold=0 -msan-eager-checks=1 -msan-spir-privates=0 -S | FileCheck %s
22

3-
; ModuleID = 'check_call.cpp'
4-
source_filename = "check_call.cpp"
53
target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64-G1"
64
target triple = "spir64-unknown-unknown"
75

8-
$_ZTSZZ4mainENKUlRN4sycl3_V17handlerEE_clES2_E8MyKernel = comdat any
9-
106
; CHECK: @__MsanKernelMetadata = appending dso_local local_unnamed_addr addrspace(1) global
117
; CHECK-SAME: [[ATTR0:#[0-9]+]]
128

13-
; Function Attrs: mustprogress norecurse nounwind sanitize_memory uwtable
14-
define weak_odr dso_local spir_kernel void @_ZTSZZ4mainENKUlRN4sycl3_V17handlerEE_clES2_E8MyKernel(ptr addrspace(1) noundef align 4 %_arg_array) local_unnamed_addr #0 comdat !srcloc !85 !kernel_arg_buffer_location !86 !sycl_fixed_targets !87 {
15-
; CHECK-LABEL: @_ZTSZZ4mainENKUlRN4sycl3_V17handlerEE_clES2_E8MyKernel
9+
; CHECK-NOT: _tls
10+
11+
define spir_kernel void @MyKernel(ptr addrspace(1) noundef align 4 %_arg_array) sanitize_memory {
12+
; CHECK-LABEL: define spir_kernel void @MyKernel
1613
entry:
17-
; CHECK-NOT: @__msan_param_tls
18-
%0 = load i32, ptr addrspace(1) %_arg_array, align 4, !tbaa !88
19-
%arrayidx3.i = getelementptr inbounds i8, ptr addrspace(1) %_arg_array, i64 4
20-
; CHECK: @__msan_get_shadow
21-
%1 = load i32, ptr addrspace(1) %arrayidx3.i, align 4, !tbaa !88
22-
%conv.i = sext i32 %1 to i64
23-
%call.i = tail call spir_func noundef i64 @_Z3fooix(i32 noundef %0, i64 noundef %conv.i) #2
24-
%conv4.i = trunc i64 %call.i to i32
25-
store i32 %conv4.i, ptr addrspace(1) %_arg_array, align 4, !tbaa !88
14+
%0 = load i32, ptr addrspace(1) %_arg_array, align 4
15+
; CHECK: %1 = ptrtoint ptr addrspace(1) %_arg_array to i64
16+
; CHECK-NEXT: %2 = call i64 @__msan_get_shadow(i64 %1, i32 1, ptr addrspace(2) null)
17+
; CHECK-NEXT: %3 = inttoptr i64 %2 to ptr addrspace(1)
18+
; CHECK-NEXT: %_msld = load i32, ptr addrspace(1) %3, align 4
19+
; CHECK-NEXT: call void @__msan_maybe_warning_4(i32 zeroext %_msld, i64 zeroext 0, ptr addrspace(2) null, i32 0, ptr addrspace(2) @__msan_kernel)
20+
%call = call spir_func i32 @foo(i32 %0)
21+
; CHECK: %4 = ptrtoint ptr addrspace(1) %_arg_array to i64
22+
; CHECK-NEXT: %5 = call i64 @__msan_get_shadow(i64 %4, i32 1, ptr addrspace(2) null)
23+
; CHECK-NEXT: %6 = inttoptr i64 %5 to ptr addrspace(1)
24+
; CHECK-NEXT: store i32 0, ptr addrspace(1) %6, align 4
25+
store i32 %call, ptr addrspace(1) %_arg_array, align 4
2626
ret void
2727
}
2828

29-
; Function Attrs: mustprogress noinline norecurse nounwind sanitize_memory uwtable
30-
define linkonce_odr dso_local spir_func noundef i64 @_Z3fooix(i32 noundef %data1, i64 noundef %data2) local_unnamed_addr #1 !srcloc !92 {
31-
; CHECK-LABEL: @_Z3fooix
29+
define spir_func i32 @foo(i32 %data) sanitize_memory {
30+
; CHECK-LABEL: define spir_func i32 @foo
3231
entry:
33-
%conv = sext i32 %data1 to i64
34-
%add = add nsw i64 %data2, %conv
35-
ret i64 %add
32+
ret i32 %data
3633
}
3734

3835
; CHECK: attributes [[ATTR0]]
3936
; CHECK-SAME: "sycl-device-global-size"="32" "sycl-device-image-scope" "sycl-host-access"="0" "sycl-unique-id"="_Z20__MsanKernelMetadata"
40-
41-
attributes #0 = { mustprogress norecurse nounwind sanitize_memory uwtable "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "sycl-module-id"="check_call.cpp" "sycl-single-task" "uniform-work-group-size"="true" }
42-
attributes #1 = { mustprogress noinline norecurse nounwind sanitize_memory uwtable "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
43-
attributes #2 = { nounwind }
44-
45-
!llvm.module.flags = !{!0, !1, !2, !3}
46-
!opencl.spir.version = !{!4}
47-
!spirv.Source = !{!5}
48-
!sycl_aspects = !{!6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36, !37, !38, !39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79, !80, !81, !82, !83}
49-
!llvm.ident = !{!84}
50-
51-
!0 = !{i32 1, !"wchar_size", i32 4}
52-
!1 = !{i32 1, !"sycl-device", i32 1}
53-
!2 = !{i32 7, !"uwtable", i32 2}
54-
!3 = !{i32 7, !"frame-pointer", i32 2}
55-
!4 = !{i32 1, i32 2}
56-
!5 = !{i32 4, i32 100000}
57-
!6 = !{!"cpu", i32 1}
58-
!7 = !{!"gpu", i32 2}
59-
!8 = !{!"accelerator", i32 3}
60-
!9 = !{!"custom", i32 4}
61-
!10 = !{!"fp16", i32 5}
62-
!11 = !{!"fp64", i32 6}
63-
!12 = !{!"image", i32 9}
64-
!13 = !{!"online_compiler", i32 10}
65-
!14 = !{!"online_linker", i32 11}
66-
!15 = !{!"queue_profiling", i32 12}
67-
!16 = !{!"usm_device_allocations", i32 13}
68-
!17 = !{!"usm_host_allocations", i32 14}
69-
!18 = !{!"usm_shared_allocations", i32 15}
70-
!19 = !{!"usm_system_allocations", i32 17}
71-
!20 = !{!"ext_intel_pci_address", i32 18}
72-
!21 = !{!"ext_intel_gpu_eu_count", i32 19}
73-
!22 = !{!"ext_intel_gpu_eu_simd_width", i32 20}
74-
!23 = !{!"ext_intel_gpu_slices", i32 21}
75-
!24 = !{!"ext_intel_gpu_subslices_per_slice", i32 22}
76-
!25 = !{!"ext_intel_gpu_eu_count_per_subslice", i32 23}
77-
!26 = !{!"ext_intel_max_mem_bandwidth", i32 24}
78-
!27 = !{!"ext_intel_mem_channel", i32 25}
79-
!28 = !{!"usm_atomic_host_allocations", i32 26}
80-
!29 = !{!"usm_atomic_shared_allocations", i32 27}
81-
!30 = !{!"atomic64", i32 28}
82-
!31 = !{!"ext_intel_device_info_uuid", i32 29}
83-
!32 = !{!"ext_oneapi_srgb", i32 30}
84-
!33 = !{!"ext_oneapi_native_assert", i32 31}
85-
!34 = !{!"host_debuggable", i32 32}
86-
!35 = !{!"ext_intel_gpu_hw_threads_per_eu", i32 33}
87-
!36 = !{!"ext_oneapi_cuda_async_barrier", i32 34}
88-
!37 = !{!"ext_intel_free_memory", i32 36}
89-
!38 = !{!"ext_intel_device_id", i32 37}
90-
!39 = !{!"ext_intel_memory_clock_rate", i32 38}
91-
!40 = !{!"ext_intel_memory_bus_width", i32 39}
92-
!41 = !{!"emulated", i32 40}
93-
!42 = !{!"ext_intel_legacy_image", i32 41}
94-
!43 = !{!"ext_oneapi_bindless_images", i32 42}
95-
!44 = !{!"ext_oneapi_bindless_images_shared_usm", i32 43}
96-
!45 = !{!"ext_oneapi_bindless_images_1d_usm", i32 44}
97-
!46 = !{!"ext_oneapi_bindless_images_2d_usm", i32 45}
98-
!47 = !{!"ext_oneapi_external_memory_import", i32 46}
99-
!48 = !{!"ext_oneapi_external_semaphore_import", i32 48}
100-
!49 = !{!"ext_oneapi_mipmap", i32 50}
101-
!50 = !{!"ext_oneapi_mipmap_anisotropy", i32 51}
102-
!51 = !{!"ext_oneapi_mipmap_level_reference", i32 52}
103-
!52 = !{!"ext_intel_esimd", i32 53}
104-
!53 = !{!"ext_oneapi_ballot_group", i32 54}
105-
!54 = !{!"ext_oneapi_fixed_size_group", i32 55}
106-
!55 = !{!"ext_oneapi_opportunistic_group", i32 56}
107-
!56 = !{!"ext_oneapi_tangle_group", i32 57}
108-
!57 = !{!"ext_intel_matrix", i32 58}
109-
!58 = !{!"ext_oneapi_is_composite", i32 59}
110-
!59 = !{!"ext_oneapi_is_component", i32 60}
111-
!60 = !{!"ext_oneapi_graph", i32 61}
112-
!61 = !{!"ext_intel_fpga_task_sequence", i32 62}
113-
!62 = !{!"ext_oneapi_limited_graph", i32 63}
114-
!63 = !{!"ext_oneapi_private_alloca", i32 64}
115-
!64 = !{!"ext_oneapi_cubemap", i32 65}
116-
!65 = !{!"ext_oneapi_cubemap_seamless_filtering", i32 66}
117-
!66 = !{!"ext_oneapi_bindless_sampled_image_fetch_1d_usm", i32 67}
118-
!67 = !{!"ext_oneapi_bindless_sampled_image_fetch_1d", i32 68}
119-
!68 = !{!"ext_oneapi_bindless_sampled_image_fetch_2d_usm", i32 69}
120-
!69 = !{!"ext_oneapi_bindless_sampled_image_fetch_2d", i32 70}
121-
!70 = !{!"ext_oneapi_bindless_sampled_image_fetch_3d", i32 72}
122-
!71 = !{!"ext_oneapi_queue_profiling_tag", i32 73}
123-
!72 = !{!"ext_oneapi_virtual_mem", i32 74}
124-
!73 = !{!"ext_oneapi_cuda_cluster_group", i32 75}
125-
!74 = !{!"ext_oneapi_image_array", i32 76}
126-
!75 = !{!"ext_oneapi_unique_addressing_per_dim", i32 77}
127-
!76 = !{!"ext_oneapi_bindless_images_sample_1d_usm", i32 78}
128-
!77 = !{!"ext_oneapi_bindless_images_sample_2d_usm", i32 79}
129-
!78 = !{!"ext_oneapi_atomic16", i32 80}
130-
!79 = !{!"ext_oneapi_virtual_functions", i32 81}
131-
!80 = !{!"host", i32 0}
132-
!81 = !{!"int64_base_atomics", i32 7}
133-
!82 = !{!"int64_extended_atomics", i32 8}
134-
!83 = !{!"usm_restricted_shared_allocations", i32 16}
135-
!84 = !{!"clang version 20.0.0git (https://github.com/intel/llvm.git 7384106e6410c6f038b2a9d6367a32b55278c638)"}
136-
!85 = !{i32 563}
137-
!86 = !{i32 -1}
138-
!87 = !{}
139-
!88 = !{!89, !89, i64 0}
140-
!89 = !{!"int", !90, i64 0}
141-
!90 = !{!"omnipotent char", !91, i64 0}
142-
!91 = !{!"Simple C++ TBAA"}
143-
!92 = !{i32 345}

0 commit comments

Comments
 (0)