[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
jhuber6 wrote: Fixed the managed stuff in https://github.com/llvm/llvm-project/pull/123437, should be good enough for the foreseeable future. https://github.com/llvm/llvm-project/pull/123359 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http

[clang] [llvm] [HIP] Support managed variables using the new driver (PR #123437)

2025-01-17 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 created https://github.com/llvm/llvm-project/pull/123437 Summary: Previously, managed variables didn't work in rdc mode using the new driver because we just didn't register them. This was previously ignored because we didn't have enough space in the current struct form

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > > For now, it's probably easier just to put some indirection in this and > > > pass a struct to the first argument. > > > > > > It would be even easier to not make the move. Does "addr" have different > > meanings in each context where an offload_entry is used? Is this goin

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > For now, it's probably easier just to put some indirection in this and pass > > a struct to the first argument. > > It would be even easier to not make the move. Does "addr" have different > meanings in each context where an offload_entry is used? Is this going to > confuse

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > I'd like to avoid modifying this struct to avoid breaking ABI with OpenMP. > > Perhaps I should make `addr` a pointer to a struct and just GEP the two > > values. > > Are we trying to jam a square HIP peg into a round OpenMP hole, or are we > truly wanting to move to a lang

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
jhuber6 wrote: @yxsamliu Here's the general problem, the `__hipRegisterManagedVar` call takes the following arguments. ```c __hipRegisterManagedVar(void ** handle, char *ManagedVarPtr, char *VarPtr, const char *VarName, size_t Size, unsigned Alignment) ``` But the struct that we store this in

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
jhuber6 wrote: I somehow totally forgot that I implemented surfaces and textures, it was `managed` that I was having problems with. https://github.com/llvm/llvm-project/pull/123359 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/123359 >From ce890d0f8f34dc1a32edf41571f0a432e4c03586 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Fri, 17 Jan 2025 09:35:34 -0600 Subject: [PATCH] [HIP] Move HIP to the new driver by default Summary: This patch

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > Surfaces and textures are being phased out of CUDA as far as I can tell, so > > I wasn't sure how relevant it was (since we can use > > `--no-offload-new-driver` as a workaround for now). CUDA clang doesn't even > > handle surfaces, and as far as I can tell the old `cudaRegi

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > Breaking any existing HIP feature is a no-go in my opinion. Textures and > surfaces are important to some developers. Surfaces and textures are being phased out of CUDA as far as I can tell, so I wasn't sure how relevant it was (since we can use `--no-offload-new-driver` as a

[clang] [HIP] Move HIP to the new driver by default (PR #123359)

2025-01-17 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 created https://github.com/llvm/llvm-project/pull/123359 Summary: This patch matches CUDA, moving the HIP compilation jobs to the new driver by default. The old behavior will return with `--no-offload-new-driver`. The main difference is that objects compiled with the o

[clang] [CUDA][HIP] Support CUID in new driver (PR #122859)

2025-01-14 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > That would break rccl. We should use CUID's that work in general, including > apps that compile the same file with different options. Shouldn't be broken if the driver handles the CUID, I just mean that it would work in `cc1` if not passed. https://github.com/llvm/llvm-proj

[clang] [CUDA][HIP] Support CUID in new driver (PR #122859)

2025-01-14 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 commented: Can we get a new test showing CUDA? CUDA uses the new driver by default so cuid stuff will be missing there. https://github.com/llvm/llvm-project/pull/122859 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [CUDA][HIP] Support CUID in new driver (PR #122859)

2025-01-14 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > > > I thought the new driver just got some entropy from the current source > > > > file's `inode` entry? I'm not opposed, since I guess it would make > > > > sense to give the user a way to override it. > > > > > > > > > Sorry I did not quite get your question. Do you sugge

[clang] [CUDA][HIP] Support CUID in new driver (PR #122859)

2025-01-14 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > I thought the new driver just got some entropy from the current source > > file's `inode` entry? I'm not opposed, since I guess it would make sense to > > give the user a way to override it. > > Sorry I did not quite get your question. Do you suggest that we need some > opt

[clang] [CUDA][HIP] Support CUID in new driver (PR #122859)

2025-01-14 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 commented: I thought the new driver just got some entropy from the current source file's `inode` entry? I'm not opposed, since I guess it would make sense to give the user a way to override it. https://github.com/llvm/llvm-project/pull/122859

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-13 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > Sorry, I kind of got lost in the above discussion. Are additional changes > required in Clang to parse builtins unsupported on the current target to make > sure we don't break anything or is only changing the result of > `__has_builtin` acceptable? I believe the conclusion wa

[clang] [NVPTX] Set cache line size to 128 for __GCC_DESTRUCTIVE_SIZE (PR #115248)

2025-01-13 Thread Joseph Huber via cfe-commits
jhuber6 wrote: There's also the question of when done from CUDA, perhaps we should make this match the aux triple if present. https://github.com/llvm/llvm-project/pull/115248 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.o

[clang] [Clang] Use `-targets=host-x86_64-unknown-linux-gnu` as bundler target (PR #122627)

2025-01-11 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 approved this pull request. Maybe one day we'll be able to get rid of the bundler. https://github.com/llvm/llvm-project/pull/122627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailma

[clang] [CUDA] Move CUDA to new driver by default (PR #122312)

2025-01-10 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 closed https://github.com/llvm/llvm-project/pull/122312 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [CUDA] Move CUDA to new driver by default (PR #122312)

2025-01-09 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > One thing that's missing is the release note. It should have an entry about > the change and a pointer to the details and instructions on how to revert to > the new build and, possibly a set of instructions for common use cases. E.g. > GPU-linking a library (i.e. linking RDC-c

[clang] [CUDA] Move CUDA to new driver by default (PR #122312)

2025-01-09 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/122312 >From 533572c8e73c7330fe91d95428fd0189471073d8 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Thu, 9 Jan 2025 10:40:43 -0600 Subject: [PATCH 1/2] [CUDA] Move CUDA to new driver by default Summary: This patch

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-09 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > All that said, there are two cases to consider wrt. the standard: > > > > 1. The initial device is the CPU and the code compiled here is just part of > > a GPU library, or > > 2. the initial device is the GPU and the code compiled here is just part of > > the "host code". >

[clang] [CUDA] Move CUDA to new driver by default (PR #122312)

2025-01-09 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/122312 >From 533572c8e73c7330fe91d95428fd0189471073d8 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Thu, 9 Jan 2025 10:40:43 -0600 Subject: [PATCH] [CUDA] Move CUDA to new driver by default Summary: This patch upd

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-09 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/122149 >From 3329b7ae7dc6044f6563f218c65f6af7498290f0 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Wed, 8 Jan 2025 12:19:53 -0600 Subject: [PATCH 1/3] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`.

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-09 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > Do we have a clear idea on if a construct can behave in a different manner if > it is nested in a target region? Unsure exactly, the target regions are just outlined, so it shouldn't affect anything on a codegen level. https://github.com/llvm/llvm-project/pull/122149

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-09 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/122149 >From 3329b7ae7dc6044f6563f218c65f6af7498290f0 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Wed, 8 Jan 2025 12:19:53 -0600 Subject: [PATCH 1/2] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`.

[clang] [OffloadBundler] Compress bundles over 4GB (PR #122307)

2025-01-09 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 commented: I've never been a fan of this type of implicit behavior, since it will change spuriously depending on what the user wants. I also wonder if we couldn't do something similar with ELF compression so we don't need to manually do all this stuff. https://githu

[clang] [Clang][OpenMP][Doc] Update OpenMPSupport.rst (PR #122174)

2025-01-09 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 closed https://github.com/llvm/llvm-project/pull/122174 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][OpenMP][Doc] Update OpenMPSupport.rst (PR #122174)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: Seems to be failing for some unrelated OpenACC test. https://github.com/llvm/llvm-project/pull/122174 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][OpenMP][Doc] Update OpenMPSupport.rst (PR #122174)

2025-01-08 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/122174 >From 47908c2aefc7009ccb62d4b9111fbd8d7e5ee7ad Mon Sep 17 00:00:00 2001 From: CatherineMoore Date: Wed, 8 Jan 2025 16:33:01 -0500 Subject: [PATCH 1/3] Update OpenMPSupport.rst --- clang/docs/OpenMPSupport.rst

[clang] Update OpenMPSupport.rst (PR #122174)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: ```Warning, treated as error: /home/runner/work/llvm-project/llvm-project/clang-build/tools/clang/docs/OpenMPSupport.rst:398:Inline interpreted text or phrase reference start-string without end-string. ninja: build stopped: subcommand failed. ``` >From the CI https://github.com/l

[clang] Update OpenMPSupport.rst (PR #122174)

2025-01-08 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/122174 >From 47908c2aefc7009ccb62d4b9111fbd8d7e5ee7ad Mon Sep 17 00:00:00 2001 From: CatherineMoore Date: Wed, 8 Jan 2025 16:33:01 -0500 Subject: [PATCH 1/2] Update OpenMPSupport.rst --- clang/docs/OpenMPSupport.rst

[clang] Update OpenMPSupport.rst (PR #122174)

2025-01-08 Thread Joseph Huber via cfe-commits
@@ -343,6 +343,124 @@ implementation. | task | nowait clause on taskwait | :part:`partial` | parsing/sema done: D131830, D141531 | +--+---

[clang] Update OpenMPSupport.rst (PR #122174)

2025-01-08 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 approved this pull request. https://github.com/llvm/llvm-project/pull/122174 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: I guess I'll see how much I favor this approach depending on how much more difficult it is to build the DeviceRTL without OpenMP. I think the only thing we'd miss is the `#pragma omp assumes(...)` business, which might have another way to be emitted in LLVM/Clang? https://githu

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > Maybe just turn on OpenMPIsTargetDevice if `gpu target + -fopenmp` is > specified? Doesn't work, it causes all definitions to be stripped as they are not declared on the device, which is not what we want. https://github.com/llvm/llvm-project/pull/122149 __

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > I think that is a misuse of OpenMP semantics. We can't expect to have regular > OpenMP code working in the same way as OpenMP offloading code when targeting > a GPU meanwhile the code is not wrapped into `target` region or declare > target. I understand to have variants and de

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > ~I don't think it should be GPU code generation path as there is no explicit > `target` region used.~ Probably I missed something here. Do you expect > regular OpenMP stuff such as `parallel` region to be emitted in the same way > as offloading code? Yes, the example in the d

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/122149 >From 3329b7ae7dc6044f6563f218c65f6af7498290f0 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Wed, 8 Jan 2025 12:19:53 -0600 Subject: [PATCH] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. Summa

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > I don't think it should be GPU code generation path as there is no explicit > `target` region used. it needs to be, otherwise the code generation for things like `#pragma omp parallel` will be wrong. The way I see it, the DeviceRTL is `libomp.a` for the GPU target, so we need

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > What code generation path would be used in this case? The GPU code generation > or regular host OpenMP? The GPU path, I'm treating that as the code generation path that created correct runtime code for the GPU. I.e. you can link it with your OpenMP offloading program and it'l

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > Maybe just turn on OpenMPIsTargetDevice if `gpu target + -fopenmp` is > specified? I'll give it a try. https://github.com/llvm/llvm-project/pull/122149 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cg

[clang] [OpenMP] Allow GPUs to be targeted directly via `-fopenmp`. (PR #122149)

2025-01-08 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 created https://github.com/llvm/llvm-project/pull/122149 Summary: Currently we prevent the following from working. However, it is completely reasonable to be able to target the files individually. ``` $ clang --target=amdgcn-amd-amdhsa -fopenmp ``` This patch lifts th

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-08 Thread Joseph Huber via cfe-commits
@@ -1818,8 +1819,21 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) { // usual allocation and deallocation functions. Required by libc++ return 201802; default: +// We may get here because of aux builtins which may not be +

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-08 Thread Joseph Huber via cfe-commits
@@ -1818,8 +1819,21 @@ void Preprocessor::ExpandBuiltinMacro(Token &Tok) { // usual allocation and deallocation functions. Required by libc++ return 201802; default: +// We may get here because of aux builtins which may not be +

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-08 Thread Joseph Huber via cfe-commits
@@ -0,0 +1,12 @@ +// REQUIRES: spirv-registered-target +// REQUIRES: x86-registered-target + +// RUN: %clang_cc1 -fopenmp -triple=spirv64 -fopenmp-is-target-device \ +// RUN: -aux-triple x86_64-linux-unknown -E %s | FileCheck -implicit-check-not=BAD %s jhuber6 wr

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-08 Thread Joseph Huber via cfe-commits
@@ -0,0 +1,12 @@ +// REQUIRES: spirv-registered-target +// REQUIRES: x86-registered-target + jhuber6 wrote: These shouldn't be necessary, we're just emitting IR. https://github.com/llvm/llvm-project/pull/121839 ___ cfe

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > This is/was my concern. However, upon thinking further, as long as we > RECOGNIZE/Parse/etc the builtins, it is OK I think if we report > "!__has_builtin". > > That is: > > ``` > void foo() { > #if __has_builtin(__builtin_x86_thing) > __builtin_x86_thing(); > #else > __builti

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-08 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > I am afraid this will break all existing CUDA/HIP programs since they expect > to be able to parse the builtins for both host and device targets. > > In the spirit of single source, the compiler sees the entire code for all > targets, including host target and all device targe

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-07 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > I don't think it makes any sense for `__has_builtin` to return true when > > the target does not in-fact have the builtin. Most of the time this is used > > to guard target specific code, which will then be wrong if it's compiled on > > the device. Realistically the solution

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-07 Thread Joseph Huber via cfe-commits
jhuber6 wrote: I don't think it makes any sense for `__has_builtin` to return true when the target does not in-fact have the builtin. Most of the time this is used to guard target specific code, which will then be wrong if it's compiled on the device. Realistically the solution that makes sens

[clang] [clang] add llvm abi support (PR #121123)

2025-01-06 Thread Joseph Huber via cfe-commits
jhuber6 wrote: You can compile and run static C applications, I'm not sure what the threshold is before we can start adding support to make it usable in `clang`. https://github.com/llvm/llvm-project/pull/121123 ___ cfe-commits mailing list cfe-commits

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-06 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > `CodeGenHipStdPar/unsupported-builtins.cpp` is pretty interesting actually, > it looks like it tests for some behavior in CodeGen that seems like it's > trying to fix the exact same problem > > The other two tests seem to be actually unrelated breakages though. Maybe @AlexVlx

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-06 Thread Joseph Huber via cfe-commits
jhuber6 wrote: Ah, I see how it is. And it probably worked in the NVPTX / AMDGCN case because we had valid code paths. This is definitely something that should be fixed, because it makes no sense to say a builtin is available if you can't even use it. Though offloading languages do tend to hat

[clang] [Clang] __has_builtin should return false for aux triple builtins (PR #121839)

2025-01-06 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 commented: Is it possible that we could just skip generating the builtin IDs at all for the aux target? Or does that break something. https://github.com/llvm/llvm-project/pull/121839 ___ cfe-commits mailing list cfe-commits@

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2025-01-06 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 closed https://github.com/llvm/llvm-project/pull/120095 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2025-01-06 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > I'm trying to understand this. Is the function being changed a generic util > called by multiple builtins, and this change is just to make `one-as` > exclusive to the OpenCL variant of those builtins ? Can an identical builtin > have different behavior depending on the input l

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2025-01-06 Thread Joseph Huber via cfe-commits
jhuber6 wrote: I discussed this with @t-tye, he said it's correct but wants @Pierre-vh to sign off on it. https://github.com/llvm/llvm-project/pull/120095 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/l

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2025-01-03 Thread Joseph Huber via cfe-commits
@@ -537,7 +537,11 @@ AMDGPUTargetCodeGenInfo::getLLVMSyncScopeID(const LangOptions &LangOpts, break; } - if (Ordering != llvm::AtomicOrdering::SequentiallyConsistent) { + // OpenCL assumes by default that atomic scopes are per-address space for + // non-sequentially

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2025-01-03 Thread Joseph Huber via cfe-commits
@@ -537,7 +537,11 @@ AMDGPUTargetCodeGenInfo::getLLVMSyncScopeID(const LangOptions &LangOpts, break; } - if (Ordering != llvm::AtomicOrdering::SequentiallyConsistent) { + // OpenCL assumes by default that atomic scopes are per-address space for + // non-sequentially

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2025-01-03 Thread Joseph Huber via cfe-commits
@@ -537,7 +537,11 @@ AMDGPUTargetCodeGenInfo::getLLVMSyncScopeID(const LangOptions &LangOpts, break; } - if (Ordering != llvm::AtomicOrdering::SequentiallyConsistent) { + // OpenCL assumes by default that atomic scopes are per-address space for + // non-sequentially

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2025-01-03 Thread Joseph Huber via cfe-commits
@@ -537,7 +537,11 @@ AMDGPUTargetCodeGenInfo::getLLVMSyncScopeID(const LangOptions &LangOpts, break; } - if (Ordering != llvm::AtomicOrdering::SequentiallyConsistent) { + // OpenCL assumes by default that atomic scopes are per-address space for + // non-sequentially

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2025-01-03 Thread Joseph Huber via cfe-commits
jhuber6 wrote: Ping https://github.com/llvm/llvm-project/pull/120095 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Driver][clang-linker-wrapper] Add initial support for OpenMP offloading to generic SPIR-V (PR #120145)

2025-01-02 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > Sure, what's left for this to work? I'm probably going to be messing around > > with the OpenMP 'DeviceRTL' more, likely killing off the 'fatbinary' and > > just using the per-target runtime dir stuff. I'm going to assume this > > wouldn't work well with SPIR-V since they do

[clang] [llvm] [Driver][clang-linker-wrapper] Add initial support for OpenMP offloading to generic SPIR-V (PR #120145)

2025-01-02 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 closed https://github.com/llvm/llvm-project/pull/120145 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Driver][clang-linker-wrapper] Add initial support for OpenMP offloading to generic SPIR-V (PR #120145)

2025-01-02 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > @jhuber6 Thanks, if you don't think we need any more reviews do you mind > merging? I still don't have push (working on it). If not, could you please > ping other reviewers? Thx Sure, what's left for this to work? I'm probably going to be messing around with the OpenMP 'Devic

[clang] [llvm] [Driver][clang-linker-wrapper] Add initial support for OpenMP offloading to generic SPIR-V (PR #120145)

2025-01-02 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 approved this pull request. https://github.com/llvm/llvm-project/pull/120145 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [openmp] [OpenMP] Use generic IR for the OpenMP DeviceRTL (PR #119091)

2024-12-24 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 closed https://github.com/llvm/llvm-project/pull/119091 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [openmp] [OpenMP] Use generic IR for the OpenMP DeviceRTL (PR #119091)

2024-12-23 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/119091 >From 767d34a0469aa67c2c47a35bc9bff29d20ae1222 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Sat, 7 Dec 2024 13:47:23 -0600 Subject: [PATCH 1/2] [OpenMP] Use generic IR for the OpenMP DeviceRTL Summary: We

[clang] [llvm] [openmp] [OpenMP] Use generic IR for the OpenMP DeviceRTL (PR #119091)

2024-12-23 Thread Joseph Huber via cfe-commits
jhuber6 wrote: @ronlieb https://gist.github.com/jhuber6/26e3fc8473a750410d2ca1db4a65918d https://github.com/llvm/llvm-project/pull/119091 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit

[clang] [llvm] [openmp] [OpenMP] Use generic IR for the OpenMP DeviceRTL (PR #119091)

2024-12-23 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > @jhuber6, since I think this PR makes #119006 obsolete, should I merge that > one while this one's still in the works, or close it? I wouldn't say it's high priority. I would've landed this already if it weren't for the downstream fork being so divergent this isn't an easy app

[clang] [llvm] [openmp] [OpenMP] Use generic IR for the OpenMP DeviceRTL (PR #119091)

2024-12-22 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/119091 >From 767d34a0469aa67c2c47a35bc9bff29d20ae1222 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Sat, 7 Dec 2024 13:47:23 -0600 Subject: [PATCH] [OpenMP] Use generic IR for the OpenMP DeviceRTL Summary: We prev

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-20 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 edited https://github.com/llvm/llvm-project/pull/120632 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-20 Thread Joseph Huber via cfe-commits
@@ -788,16 +789,28 @@ class LLVM_LIBRARY_VISIBILITY ZOSTargetInfo : public OSTargetInfo { // UEFI target template class LLVM_LIBRARY_VISIBILITY UEFITargetInfo : public OSTargetInfo { + llvm::Triple Triple; + protected: void getOSDefines(const LangOptions &Opts, const llv

[clang] [libcxx] [clang][driver] Cleanup UEFI toolchain driver (PR #111473)

2024-12-20 Thread Joseph Huber via cfe-commits
@@ -35,6 +35,24 @@ UEFI::UEFI(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) Tool *UEFI::buildLinker() const { return new tools::uefi::Linker(*this); } +void UEFI::AddClangSystemIncludeArgs(const ArgList &DriverArgs, + A

[clang] [clang] Introduce a new UEFI target predefine. (PR #111719)

2024-12-20 Thread Joseph Huber via cfe-commits
jhuber6 wrote: Didn't know this existed, but we have https://github.com/llvm/llvm-project/pull/120632 tracking it now. https://github.com/llvm/llvm-project/pull/111719 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
@@ -820,43 +820,6 @@ class LLVM_LIBRARY_VISIBILITY X86_64TargetInfo : public X86TargetInfo { } }; -// x86-64 UEFI target -class LLVM_LIBRARY_VISIBILITY UEFIX86_64TargetInfo -: public UEFITargetInfo { -public: - UEFIX86_64TargetInfo(const llvm::Triple &Triple, const Tar

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
@@ -820,43 +820,6 @@ class LLVM_LIBRARY_VISIBILITY X86_64TargetInfo : public X86TargetInfo { } }; -// x86-64 UEFI target -class LLVM_LIBRARY_VISIBILITY UEFIX86_64TargetInfo -: public UEFITargetInfo { -public: - UEFIX86_64TargetInfo(const llvm::Triple &Triple, const Tar

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 edited https://github.com/llvm/llvm-project/pull/120632 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 approved this pull request. Seems reasonable if it passes all the tests. https://github.com/llvm/llvm-project/pull/120632 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
@@ -788,16 +789,28 @@ class LLVM_LIBRARY_VISIBILITY ZOSTargetInfo : public OSTargetInfo { // UEFI target template class LLVM_LIBRARY_VISIBILITY UEFITargetInfo : public OSTargetInfo { + llvm::Triple Triple; protected: void getOSDefines(const LangOptions &Opts, const llvm:

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
@@ -820,43 +820,6 @@ class LLVM_LIBRARY_VISIBILITY X86_64TargetInfo : public X86TargetInfo { } }; -// x86-64 UEFI target -class LLVM_LIBRARY_VISIBILITY UEFIX86_64TargetInfo -: public UEFITargetInfo { -public: - UEFIX86_64TargetInfo(const llvm::Triple &Triple, const Tar

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
@@ -165,6 +165,9 @@ std::unique_ptr AllocateTarget(const llvm::Triple &Triple, case llvm::Triple::OpenBSD: return std::make_unique>(Triple, Opts); +case llvm::Triple::UEFI: + return std::m

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
@@ -165,6 +165,9 @@ std::unique_ptr AllocateTarget(const llvm::Triple &Triple, case llvm::Triple::OpenBSD: return std::make_unique>(Triple, Opts); +case llvm::Triple::UEFI: + return std::m

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
@@ -165,6 +165,9 @@ std::unique_ptr AllocateTarget(const llvm::Triple &Triple, case llvm::Triple::OpenBSD: return std::make_unique>(Triple, Opts); +case llvm::Triple::UEFI: + return std::m

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 commented: Should probably add something to `TargetOSMacros.def` while we're at it. https://github.com/llvm/llvm-project/pull/120632 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailm

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
jhuber6 wrote: > > Should we have an entry for `-fdefine-target-os-macros` as well? > > I think so, it wouldn't be a bad idea. > > > Also needs a test > > I might need some guidance on adding a test since I'm not fully familiar with > the clang side of LLVM. Check `./clang/test/Preprocessor

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
jhuber6 wrote: Also needs a test https://github.com/llvm/llvm-project/pull/120632 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 edited https://github.com/llvm/llvm-project/pull/120632 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 commented: Should we have an entry for `-fdefine_target_os_macros` as well? https://github.com/llvm/llvm-project/pull/120632 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listi

[clang] [clang] fix uefi target for aarch64 & x86_64 (PR #120632)

2024-12-19 Thread Joseph Huber via cfe-commits
@@ -790,7 +790,9 @@ template class LLVM_LIBRARY_VISIBILITY UEFITargetInfo : public OSTargetInfo { protected: void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple, -MacroBuilder &Builder) const override {} +MacroBuilder

[clang] [Clang][HIP] Deprecate the AMDGCN_WAVEFRONT_SIZE macros (PR #112849)

2024-12-18 Thread Joseph Huber via cfe-commits
@@ -337,9 +337,12 @@ void AMDGPUTargetInfo::getTargetDefines(const LangOptions &Opts, if (hasFastFMA()) Builder.defineMacro("FP_FAST_FMA"); - Builder.defineMacro("__AMDGCN_WAVEFRONT_SIZE__", Twine(WavefrontSize)); - // ToDo: deprecate this macro for naming consistency

[clang] [Clang][HIP] Deprecate the AMDGCN_WAVEFRONT_SIZE macros (PR #112849)

2024-12-18 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 edited https://github.com/llvm/llvm-project/pull/112849 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][HIP] Deprecate the AMDGCN_WAVEFRONT_SIZE macros (PR #112849)

2024-12-18 Thread Joseph Huber via cfe-commits
@@ -337,9 +337,12 @@ void AMDGPUTargetInfo::getTargetDefines(const LangOptions &Opts, if (hasFastFMA()) Builder.defineMacro("FP_FAST_FMA"); - Builder.defineMacro("__AMDGCN_WAVEFRONT_SIZE__", Twine(WavefrontSize)); - // ToDo: deprecate this macro for naming consistency

[clang] [Clang][HIP] Deprecate the AMDGCN_WAVEFRONT_SIZE macros (PR #112849)

2024-12-18 Thread Joseph Huber via cfe-commits
@@ -337,9 +337,12 @@ void AMDGPUTargetInfo::getTargetDefines(const LangOptions &Opts, if (hasFastFMA()) Builder.defineMacro("FP_FAST_FMA"); - Builder.defineMacro("__AMDGCN_WAVEFRONT_SIZE__", Twine(WavefrontSize)); - // ToDo: deprecate this macro for naming consistency

[clang] [NFC][Clang] Fix static analyzer concerns (PR #120259)

2024-12-17 Thread Joseph Huber via cfe-commits
https://github.com/jhuber6 commented: I'm not sure, those enums might evaluate to zero but it makes it clearer and correct if they ever change. Realistically, the chance of that happening is pretty much zero, but still. I don't see this warning show up when I check with my LSP (though I do se

[clang] [Clang][AMDGPU] Stop defaulting to `one-as` for all atomic scopes (PR #120095)

2024-12-17 Thread Joseph Huber via cfe-commits
@@ -537,7 +537,11 @@ AMDGPUTargetCodeGenInfo::getLLVMSyncScopeID(const LangOptions &LangOpts, break; } - if (Ordering != llvm::AtomicOrdering::SequentiallyConsistent) { + // OpenCL assumes by default that atomic scopes are per-address space for + // non-sequentially

[clang] [llvm] [Driver][clang-linker-wrapper] Add initial support for OpenMP offloading to generic SPIR-V (PR #120145)

2024-12-17 Thread Joseph Huber via cfe-commits
@@ -2829,10 +2829,13 @@ void tools::addOpenMPDeviceRTL(const Driver &D, LibraryPaths.emplace_back(LibPath); OptSpecifier LibomptargetBCPathOpt = - Triple.isAMDGCN() ? options::OPT_libomptarget_amdgpu_bc_path_EQ -: options::OPT_libomptarget_nv

[clang] [llvm] [Driver][clang-linker-wrapper] Add initial support for OpenMP offloading to generic SPIR-V (PR #120145)

2024-12-17 Thread Joseph Huber via cfe-commits
@@ -735,11 +736,15 @@ wrapDeviceImages(ArrayRef> Buffers, } Expected>> -bundleOpenMP(ArrayRef Images) { +bundleOpenMP(SmallVectorImpl &Images) { jhuber6 wrote: But this function's job is to return a new list of binary files after serializing the input, can'

  1   2   3   4   5   6   7   8   9   10   >