[clang] [NVPTX][AMDGPU][CodeGen] Fix `local_space nullptr` handling for NVPTX and local/private `nullptr` value for AMDGPU. (PR #78759)

2024-01-25 Thread Victor Lomuller via cfe-commits
@@ -285,6 +289,20 @@ void NVPTXTargetCodeGenInfo::addNVVMMetadata(llvm::GlobalValue *GV, bool NVPTXTargetCodeGenInfo::shouldEmitStaticExternCAliases() const { return false; } + +llvm::Constant * +NVPTXTargetCodeGenInfo::getNullPointer(const CodeGen::CodeGenModule &CGM, +

[clang] [NVPTX][AMDGPU][CodeGen] Fix `local_space nullptr` handling for NVPTX and local/private `nullptr` value for AMDGPU. (PR #78759)

2024-01-25 Thread Victor Lomuller via cfe-commits
@@ -418,8 +418,10 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo { // value ~0. uint64_t getNullPointerValue(LangAS AS) const override { // FIXME: Also should handle region. -return (AS == LangAS::opencl_local || AS == LangAS::opencl_pr

[clang] [clang][NVPTX] Define macro indicating the PTX version (PR #94934)

2024-06-09 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan created https://github.com/llvm/llvm-project/pull/94934 Define __PTX_VERSION__ macro to indicate the used PTX version. Usually each new PTX version brings a new sm version and the associated instructions. However, some of these instructions can also be made avialabl

[clang] [clang][NVPTX] Define macro indicating the PTX version (PR #94934)

2024-06-18 Thread Victor Lomuller via cfe-commits
Naghasan wrote: @Artem-B could you have a look ? I think you are the most relevant for this, thanks. (Sorry I can't manage assignment) https://github.com/llvm/llvm-project/pull/94934 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://list

[clang] [clang][NVPTX] Define macro indicating the PTX version (PR #94934)

2024-07-09 Thread Victor Lomuller via cfe-commits
Naghasan wrote: ping https://github.com/llvm/llvm-project/pull/94934 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NVPTX] Define macro indicating the PTX version (PR #94934)

2024-06-27 Thread Victor Lomuller via cfe-commits
Naghasan wrote: Thanks for setting the reviewer > Can you please include rationale for why this this name e.g. why not > __NVPTX_VERSION__? `NVPTX` is the name of the LLVM backend, `PTX` is the name of assembly which have a version hence `__PTX_VERSION__`. Happy to use a better name, but it i

[clang] [clang][NVPTX] Define macro indicating the PTX version (PR #94934)

2024-06-27 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan edited https://github.com/llvm/llvm-project/pull/94934 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NVPTX] Define macro indicating the PTX version (PR #94934)

2024-06-27 Thread Victor Lomuller via cfe-commits
Naghasan wrote: Still I forgot to answer this point as well... > Are there ever point releases that might mea +ptx78 should actually expand to > 780 rather than 78? not sure what you exactly mean with your question. I guess we can mirror the cuda arch macro so, major * 100 + minor * 10, no op

[clang] [llvm] [llvm][opt][Transforms][SPIR-V] Enable `InferAddressSpaces` for SPIR-V (PR #110897)

2024-10-16 Thread Victor Lomuller via cfe-commits
@@ -91,6 +97,88 @@ SPIRVTargetMachine::SPIRVTargetMachine(const Target &T, const Triple &TT, setRequiresStructuredCFG(false); } +enum AddressSpace { + Function = storageClassToAddressSpace(SPIRV::StorageClass::Function), + CrossWorkgroup = + storageClassToAddressSpac

[clang] [llvm] [llvm][opt][Transforms][SPIR-V] Enable `InferAddressSpaces` for SPIR-V (PR #110897)

2024-11-28 Thread Victor Lomuller via cfe-commits
@@ -91,6 +97,88 @@ SPIRVTargetMachine::SPIRVTargetMachine(const Target &T, const Triple &TT, setRequiresStructuredCFG(false); } +enum AddressSpace { + Function = storageClassToAddressSpace(SPIRV::StorageClass::Function), + CrossWorkgroup = + storageClassToAddressSpac

[clang] [llvm] [llvm][opt][Transforms][SPIR-V] Enable `InferAddressSpaces` for SPIR-V (PR #110897)

2024-11-28 Thread Victor Lomuller via cfe-commits
@@ -92,6 +98,63 @@ SPIRVTargetMachine::SPIRVTargetMachine(const Target &T, const Triple &TT, setRequiresStructuredCFG(false); } +enum AddressSpace { + Function = storageClassToAddressSpace(SPIRV::StorageClass::Function), + CrossWorkgroup = + storageClassToAddressSpac

[clang] [llvm] [llvm][opt][Transforms][SPIR-V] Enable `InferAddressSpaces` for SPIR-V (PR #110897)

2024-11-28 Thread Victor Lomuller via cfe-commits
@@ -92,6 +98,63 @@ SPIRVTargetMachine::SPIRVTargetMachine(const Target &T, const Triple &TT, setRequiresStructuredCFG(false); } +enum AddressSpace { + Function = storageClassToAddressSpace(SPIRV::StorageClass::Function), + CrossWorkgroup = + storageClassToAddressSpac

[clang] [llvm] [llvm][opt][Transforms][SPIR-V] Enable `InferAddressSpaces` for SPIR-V (PR #110897)

2024-11-28 Thread Victor Lomuller via cfe-commits
@@ -91,6 +97,88 @@ SPIRVTargetMachine::SPIRVTargetMachine(const Target &T, const Triple &TT, setRequiresStructuredCFG(false); } +enum AddressSpace { + Function = storageClassToAddressSpace(SPIRV::StorageClass::Function), + CrossWorkgroup = + storageClassToAddressSpac

[clang] [llvm] [llvm][opt][Transforms][SPIR-V] Enable `InferAddressSpaces` for SPIR-V (PR #110897)

2024-12-02 Thread Victor Lomuller via cfe-commits
@@ -91,6 +97,88 @@ SPIRVTargetMachine::SPIRVTargetMachine(const Target &T, const Triple &TT, setRequiresStructuredCFG(false); } +enum AddressSpace { + Function = storageClassToAddressSpace(SPIRV::StorageClass::Function), + CrossWorkgroup = + storageClassToAddressSpac

[clang] [llvm] [llvm][opt][Transforms][SPIR-V] Enable `InferAddressSpaces` for SPIR-V (PR #110897)

2024-12-10 Thread Victor Lomuller via cfe-commits
@@ -91,6 +97,88 @@ SPIRVTargetMachine::SPIRVTargetMachine(const Target &T, const Triple &TT, setRequiresStructuredCFG(false); } +enum AddressSpace { + Function = storageClassToAddressSpace(SPIRV::StorageClass::Function), + CrossWorkgroup = + storageClassToAddressSpac

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
@@ -35,8 +35,10 @@ static constexpr Builtin::Info BuiltinInfos[] = { static_assert(std::size(BuiltinInfos) == NumBuiltins); llvm::SmallVector -SPIRVTargetInfo::getTargetBuiltins() const { - return {{&BuiltinStrings, BuiltinInfos}}; +BaseSPIRTargetInfo::getTargetBuiltins() con

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-30 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan updated https://github.com/llvm/llvm-project/pull/137805 >From 020a804188b13ef881dcf1cbd81a5e11e4803d62 Mon Sep 17 00:00:00 2001 From: Victor Lomuller Date: Mon, 28 Apr 2025 16:20:09 +0100 Subject: [PATCH 1/2] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-30 Thread Victor Lomuller via cfe-commits
@@ -33,8 +46,114 @@ static bool CheckAllArgsHaveSameType(Sema *S, CallExpr *TheCall) { return false; } -bool SemaSPIRV::CheckSPIRVBuiltinFunctionCall(unsigned BuiltinID, +static std::optional +processConstant32BitIntArgument(Sema &SemaRef, CallExpr *Call, int Argument) { +

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-30 Thread Victor Lomuller via cfe-commits
@@ -97,10 +97,10 @@ static Value *EmitTargetArchBuiltinExpr(CodeGenFunction *CGF, case llvm::Triple::riscv64: return CGF->EmitRISCVBuiltinExpr(BuiltinID, E, ReturnValue); case llvm::Triple::spirv: Naghasan wrote: nope, I fixed it https://github.com/l

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan created https://github.com/llvm/llvm-project/pull/137805 The patch introduce __builtin_spirv_generic_cast_to_ptr_explicit which is lowered to the llvm.spv.generic.cast.to.ptr.explicit intrinsic. The patch also introduces a new header defining its SPIR-V friendly equ

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
Naghasan wrote: Sorry I can't assign reviewers, @JonChesterfield @jhuber6 as you are involved in gpuintrin.h, I'd welcome feedbacks here (feel free to ping other relevant persons) For the SPIR-V side of thing @VyacheslavLevytskyy @farzonl I appreciate your feedbacks as well :) FYI @tahoner

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan updated https://github.com/llvm/llvm-project/pull/137805 >From 90725e8f74295bfd9169e03e73af54c2cf4616ea Mon Sep 17 00:00:00 2001 From: Victor Lomuller Date: Mon, 28 Apr 2025 16:20:09 +0100 Subject: [PATCH] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan updated https://github.com/llvm/llvm-project/pull/137805 >From 020a804188b13ef881dcf1cbd81a5e11e4803d62 Mon Sep 17 00:00:00 2001 From: Victor Lomuller Date: Mon, 28 Apr 2025 16:20:09 +0100 Subject: [PATCH] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
@@ -35,8 +35,10 @@ static constexpr Builtin::Info BuiltinInfos[] = { static_assert(std::size(BuiltinInfos) == NumBuiltins); llvm::SmallVector -SPIRVTargetInfo::getTargetBuiltins() const { - return {{&BuiltinStrings, BuiltinInfos}}; +BaseSPIRTargetInfo::getTargetBuiltins() con

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
@@ -35,8 +35,10 @@ static constexpr Builtin::Info BuiltinInfos[] = { static_assert(std::size(BuiltinInfos) == NumBuiltins); llvm::SmallVector -SPIRVTargetInfo::getTargetBuiltins() const { - return {{&BuiltinStrings, BuiltinInfos}}; +BaseSPIRTargetInfo::getTargetBuiltins() con

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
@@ -35,8 +35,10 @@ static constexpr Builtin::Info BuiltinInfos[] = { static_assert(std::size(BuiltinInfos) == NumBuiltins); llvm::SmallVector -SPIRVTargetInfo::getTargetBuiltins() const { - return {{&BuiltinStrings, BuiltinInfos}}; +BaseSPIRTargetInfo::getTargetBuiltins() con

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
@@ -5837,12 +5838,13 @@ static void handleBuiltinAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) { bool IsAArch64 = S.Context.getTargetInfo().getTriple().isAArch64(); bool IsARM = S.Context.getTargetInfo().getTriple().isARM(); bool IsRISCV = S.Context.getTargetInfo().g

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan updated https://github.com/llvm/llvm-project/pull/137805 >From 020a804188b13ef881dcf1cbd81a5e11e4803d62 Mon Sep 17 00:00:00 2001 From: Victor Lomuller Date: Mon, 28 Apr 2025 16:20:09 +0100 Subject: [PATCH 1/2] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-04-29 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan edited https://github.com/llvm/llvm-project/pull/137805 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][SYCL] Add AOT compilation support for Intel GPUs in clang-sycl-linker (PR #133194)

2025-04-04 Thread Victor Lomuller via cfe-commits
@@ -0,0 +1,131 @@ +//===--- SYCL.h -*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Ap

[clang] [Clang][SYCL] Add AOT compilation support for Intel GPUs in clang-sycl-linker (PR #133194)

2025-04-03 Thread Victor Lomuller via cfe-commits
@@ -0,0 +1,131 @@ +//===--- SYCL.h -*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Ap

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-12 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan updated https://github.com/llvm/llvm-project/pull/143909 >From 049087b07503add00192211b8ee96bdfebcfeed3 Mon Sep 17 00:00:00 2001 From: Victor Lomuller Date: Thu, 5 Jun 2025 16:17:10 +0100 Subject: [PATCH] [SPIRV] Add more id and range builtIns The patch adds intrins

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-12 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan ready_for_review https://github.com/llvm/llvm-project/pull/143909 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-12 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan created https://github.com/llvm/llvm-project/pull/143909 The patch adds intrinsics and lowering logic for GlobalSize, GlobalOffset, SubgroupMaxSize, NumWorkgroups, WorkgroupSize, WorkgroupId, LocalInvocationId, GlobalInvocationId, SubgroupSize, NumSubgroups, Subgrou

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-12 Thread Victor Lomuller via cfe-commits
Naghasan wrote: The advantage of intrinsics is they can be understood better by passes, it also creates an easier way for passes to introduce them (and less error prone). It's kinda pedantic TBH and I don't have strong opinions about them (it just feels cleaner to me). For the frontend side, t

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-12 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan converted_to_draft https://github.com/llvm/llvm-project/pull/143909 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][SPIRV] Add builtin for OpGenericCastToPtrExplicit and its SPIR-V friendly binding (PR #137805)

2025-05-29 Thread Victor Lomuller via cfe-commits
Naghasan wrote: Just opened a PR for this https://github.com/llvm/llvm-project/pull/141954 https://github.com/llvm/llvm-project/pull/137805 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-comm

[clang] Fix build issue after c474f8f (PR #141954)

2025-05-29 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan created https://github.com/llvm/llvm-project/pull/141954 Remove unneeded default label which triggers a warning with -Wcovered-switch-default >From 5b5bbe5792043881e03db19e9e888bd797052b8e Mon Sep 17 00:00:00 2001 From: Victor Lomuller Date: Thu, 29 May 2025 15:10:

[clang] [clang][SPIRV] Fix build issue after c474f8f (PR #141954)

2025-05-29 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan edited https://github.com/llvm/llvm-project/pull/141954 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Fix build issue after c474f8f (PR #141954)

2025-05-29 Thread Victor Lomuller via cfe-commits
https://github.com/Naghasan edited https://github.com/llvm/llvm-project/pull/141954 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][SPIRV] Fix build issue after c474f8f (PR #141954)

2025-05-29 Thread Victor Lomuller via cfe-commits
Naghasan wrote: @farzonl @VyacheslavLevytskyy https://github.com/llvm/llvm-project/pull/141954 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [SPIRV] Add more id and range builtIns (PR #143909)

2025-06-24 Thread Victor Lomuller via cfe-commits
Naghasan wrote: Thanks for the background, that helps. > That said, I'm not completely against having 2 ways to do the same thing in > the backend if that's really a requirement on your end. Some FE could use > intrinsics, other the global approach. Well all could switch to intrinics or none