User Details
- User Since
- Nov 9 2017, 10:58 AM (306 w, 10 h)
Tue, Sep 19
Use correct flag naming.
Rebase.
Gentle ping.
Wed, Sep 13
Use correct capitalisation in helper.
Tue, Sep 12
Address review feedback around explicit use of std::.
Sun, Sep 10
Fix some wording to further clarify this is an HIP + AMDGPU exclusive extension.
Fri, Sep 1
Correctly reflect AMDGPU-only nature of the extension.
Mon, Aug 28
Sun, Aug 27
Add back clarification about RDC.
Fix typo, add release notes reflecting the HIP-only nature.
Wed, Aug 23
Define the interpose macro iff in interpose mode.
Gentle ping.
Remove noise.
Update per review comments.
Use --hipstdpar instead of -hipstdpar in the test.
Updating this to reflect the outcome of the RFC, which is that we're adding it as a HIP extension exclusively. Added support for handling thread_local, which is unsupported.
Aug 22 2023
Updating to reflect the outcome of the RFC, which is that this will be added as a HIP extension exclusively.
Updating this to reflect the outcome of the RFC, which is that it will be added as a HIP extension exclusively.
Updating this to reflect the outcome of the RFC, which is that this will be added as a HIP extension exclusively.
Updating this to reflect the outcome of the RFC, which is that this will be added as a HIP extension exclusively.
Updating this to reflect the outcome of the RFC, which is that this shall be a HIP only extension. As such, documentation lives within the HIP Support master document; the other patches in the series will be updated accordingly.
Aug 17 2023
Add handling of thread_local variables that are used by accelerator reachable functions: since this is currently unsupported, we error out with as tidy a diagnostic as possible.
Aug 15 2023
Remove unneeded cast, the dynamic case already emitted a generic pointer to typeinfo
Update test.
LGTM, thanks.
Rework the patch as the proposed approach was unsound; keep typeid generic.
Aug 10 2023
Add support for handling incompatible ASM.
Switch to __ASM prefix.
Fix typo.
Remove noise / unintended file. Add support for dealing with unsupported ASM.
Fix typo.
Add support for handling certain cases of unambiguously accelerator unsupported ASM i.e. cases where constraints are clearly mismatched. When that happens, we instead emit an ASM__stdpar_unsupported stub which takes as its single argument the constexpr string value of the ASM block. Later, in the AcceleratorCodeSelection pass, if such a stub is reachable from an accelerator callable, we error out and print the offending ASM alongside the location.
Aug 9 2023
Aug 8 2023
Aug 7 2023
Extend handling of unsupported builtins to include dealing with the target attribute.
Aug 6 2023
Remove confusing guidance around mGPU.
Aug 3 2023
Update diff, handling of globals was wrong in that it'd mess up extern __shared__ cases.
Remove noise, correct style.
Rebase.
Aug 2 2023
Aug 1 2023
Ping?
Jul 31 2023
Use pointee's address space for the check.
Address review comments.
Incorporated review feedback. Updated test.
Jul 28 2023
Jul 27 2023
Exploit the fact that ROCm/AMDGPU does LTCG at the moment and for the foreseeable future by moving the accelerator code selection pass to later.
Add support for dealing with builtins that are unavailable on the target.
This adds more ecumenical handling of unsupported builtins, as per the review discussion (a suffixed equivalent stub is emitted instead); it's paired with an associated change in accelerator code selection pass, where the actual check for these stubs occurs. I've also adjusted where the latter pass gets added to the opt pipeline, for the AMDGCN target; for the latter it's better, for the moment, to run it later because we essentially do LTCG, and therefore can unambiguously determine reachability by operating on the full module.
Jul 26 2023
Gentle ping.
Rebase.
Jul 21 2023
@yaxunl interesting point - are you worried about cases where due to missing inlining / const prop an indirect call site that can be replaced with a direct one would remain indirect? I think the problem in that case would actually be different, in that possibly reachable functions would not be identified as such and would be erroneously removed. I'm not sure there's any case where we'd fail to remove a meant to be unreachable function. We can definitely go with the __clang_unsupported approach, but I think I'd prefer these to be compile time errors rather than remarks + runtime printf, not in the least because printf adds some overhead. A way to ensure we don't "miss a spot" might be to check after removal for any remaining unsupported builtins, instead of doing it during reachability computation (this is coupled with the special naming from the prior post).
Jul 20 2023
Jul 19 2023
Removed some accidental noise.
Rebase.
Jul 13 2023
Ping.
Jul 9 2023
Rebase.