History log of /llvm-project/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp (Results 1 – 25 of 99)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4
# ccf5d624 06-Nov-2024 Kazu Hirata <kazu@google.com>

[AMDGPU] Fix a warning

This patch fixes:

llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp:1031:17: error:
unused variable 'F' [-Werror,-Wunused-variable]


# 8c752900 06-Nov-2024 Gang Chen <gangc@amd.com>

[AMDGPU] modify named barrier builtins and intrinsics (#114550)

Use a local pointer type to represent the named barrier in builtin and
intrinsic. This makes the definitions more user friendly
baca

[AMDGPU] modify named barrier builtins and intrinsics (#114550)

Use a local pointer type to represent the named barrier in builtin and
intrinsic. This makes the definitions more user friendly
bacause they do not need to worry about the hardware ID assignment. Also
this approach is more like the other popular GPU programming language.
Named barriers should be represented as global variables of addrspace(3)
in LLVM-IR. Compiler assigns the special LDS offsets for those variables
during AMDGPULowerModuleLDS pass. Those addresses are converted to hw
barrier ID during instruction selection. The rest of the
instruction-selection changes are primarily due to the
intrinsic-definition changes.

show more ...


Revision tags: llvmorg-19.1.3
# 85c17e40 17-Oct-2024 Jay Foad <jay.foad@amd.com>

[LLVM] Make more use of IRBuilder::CreateIntrinsic. NFC. (#112706)

Convert many instances of:
Fn = Intrinsic::getOrInsertDeclaration(...);
CreateCall(Fn, ...)
to the equivalent CreateIntrinsi

[LLVM] Make more use of IRBuilder::CreateIntrinsic. NFC. (#112706)

Convert many instances of:
Fn = Intrinsic::getOrInsertDeclaration(...);
CreateCall(Fn, ...)
to the equivalent CreateIntrinsic call.

show more ...


Revision tags: llvmorg-19.1.2
# fa789dff 11-Oct-2024 Rahul Joshi <rjoshi@nvidia.com>

[NFC] Rename `Intrinsic::getDeclaration` to `getOrInsertDeclaration` (#111752)

Rename the function to reflect its correct behavior and to be consistent
with `Module::getOrInsertFunction`. This is a

[NFC] Rename `Intrinsic::getDeclaration` to `getOrInsertDeclaration` (#111752)

Rename the function to reflect its correct behavior and to be consistent
with `Module::getOrInsertFunction`. This is also in preparation of
adding a new `Intrinsic::getDeclaration` that will have behavior similar
to `Module::getFunction` (i.e, just lookup, no creation).

show more ...


# 8d13e7b8 03-Oct-2024 Jay Foad <jay.foad@amd.com>

[AMDGPU] Qualify auto. NFC. (#110878)

Generated automatically with:
$ clang-tidy -fix -checks=-*,llvm-qualified-auto $(find
lib/Target/AMDGPU/ -type f)


Revision tags: llvmorg-19.1.1, llvmorg-19.1.0
# 2d7339ad 04-Sep-2024 Juan Manuel Martinez Caamaño <jmartinezcaamao@gmail.com>

[AMDGPU][LDS] Fix dynamic LDS interaction with "amdgpu-no-lds-kernel-id" (#107092)

Dynamic lds and Table lds both use the amdgpu_lds_kernel_id intrinsic.
Kernels and functons that make an indirect

[AMDGPU][LDS] Fix dynamic LDS interaction with "amdgpu-no-lds-kernel-id" (#107092)

Dynamic lds and Table lds both use the amdgpu_lds_kernel_id intrinsic.
Kernels and functons that make an indirect use of this should not have
the
"amdgpu-no-lds-kernel-id" attribute.

For the later, this was done. For the dynamic lds case, this was
missing. This patch fixes it.

show more ...


Revision tags: llvmorg-19.1.0-rc4
# 1bde8e0b 28-Aug-2024 Jon Chesterfield <jonathanchesterfield@gmail.com>

[AMDGPU] Don't realign already allocated LDS. Point fix for 106412 (#106421)

Fixes 106412. The logic that skips the pass on already-lowered variables
doesn't cover the path that increases alignment

[AMDGPU] Don't realign already allocated LDS. Point fix for 106412 (#106421)

Fixes 106412. The logic that skips the pass on already-lowered variables
doesn't cover the path that increases alignment of variables. If a
variable is allocated at 24 and then given 16 byte alignment, the
backend notices and fatal-errors on the inconsistency.

show more ...


# 55d744ee 20-Aug-2024 Jay Foad <jay.foad@amd.com>

[AMDGPU] Move AMDGPUMemoryUtils out of Utils. NFC. (#104930)

It is only used by CodeGen so does not need to be shared with the
assembler/disassembler.


Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init
# c7309dad 17-Jul-2024 Jay Foad <jay.foad@amd.com>

[AMDGPU] Use range-based for loops. NFC. (#99047)


# fb2b5cd1 16-Jul-2024 Akshat Oke <76596238+Akshat-Oke@users.noreply.github.com>

[NFC] Fix typos (#98454)

Co-authored-by: Akshat Oke <Akshat.Oke@amd.com>


# d75f9dd1 24-Jun-2024 Stephen Tozer <stephen.tozer@sony.com>

Revert "[IR][NFC] Update IRBuilder to use InsertPosition (#96497)"

Reverts the above commit, as it updates a common header function and
did not update all callsites:

https://lab.llvm.org/buildbot

Revert "[IR][NFC] Update IRBuilder to use InsertPosition (#96497)"

Reverts the above commit, as it updates a common header function and
did not update all callsites:

https://lab.llvm.org/buildbot/#/builders/29/builds/382

This reverts commit 6481dc57612671ebe77fe9c34214fba94e1b3b27.

show more ...


# 6481dc57 24-Jun-2024 Stephen Tozer <stephen.tozer@sony.com>

[IR][NFC] Update IRBuilder to use InsertPosition (#96497)

Uses the new InsertPosition class (added in #94226) to simplify some of
the IRBuilder interface, and removes the need to pass a BasicBlock

[IR][NFC] Update IRBuilder to use InsertPosition (#96497)

Uses the new InsertPosition class (added in #94226) to simplify some of
the IRBuilder interface, and removes the need to pass a BasicBlock
alongside a BasicBlock::iterator, using the fact that we can now get the
parent basic block from the iterator even if it points to the sentinel.
This patch removes the BasicBlock argument from each constructor or call
to setInsertPoint.

This has no functional effect, but later on as we look to remove the
`Instruction *InsertBefore` argument from instruction-creation
(discussed
[here](https://discourse.llvm.org/t/psa-instruction-constructors-changing-to-iterator-only-insertion/77845)),
this will simplify the process by allowing us to deprecate the
InsertPosition constructor directly and catch all the cases where we use
instructions rather than iterators.

show more ...


Revision tags: llvmorg-18.1.8
# 7573d5e4 06-Jun-2024 Chaitanya <Krishna.Sankisa@amd.com>

[AMDGPU] Update removeFnAttrFromReachable to accept array of Fn Attrs. (#94188)

This PR updates removeFnAttrFromReachable in AMDGPUMemoryUtils to accept
array of function attributes as argument.
H

[AMDGPU] Update removeFnAttrFromReachable to accept array of Fn Attrs. (#94188)

This PR updates removeFnAttrFromReachable in AMDGPUMemoryUtils to accept
array of function attributes as argument.
Helps to remove multiple attributes in one CallGraph walk.

show more ...


Revision tags: llvmorg-18.1.7
# ebbbc736 20-May-2024 Chaitanya <Krishna.Sankisa@amd.com>

[AMDGPU] Use removeFnAttrFromReachable in lower-module-lds pass. (#92686)


Revision tags: llvmorg-18.1.6
# 2c5f470d 10-May-2024 Chaitanya <Krishna.Sankisa@amd.com>

[AMDGPU] Move LDS utilities from amdgpu-lower-module-lds pass to AMDGPUMemoryUtils (#88002)

This moves some of the utility methods from amdgpu-lower-module-lds pass to AMDGPUMemoryUtils.


Revision tags: llvmorg-18.1.5, llvmorg-18.1.4
# 1c63a3e0 15-Apr-2024 mmoadeli <mahmoud.moadeli@codeplay.com>

Resolve static analyser report on pointer dereferencing after null check (#88278)

- Resolve Static Analyzer Check Failure: Pointer Dereferencing After
Null Check.
- Minor naming and style improvem

Resolve static analyser report on pointer dereferencing after null check (#88278)

- Resolve Static Analyzer Check Failure: Pointer Dereferencing After
Null Check.
- Minor naming and style improvement

show more ...


Revision tags: llvmorg-18.1.3
# ccb3a8fe 21-Mar-2024 Pierre van Houtryve <pierre.vanhoutryve@amd.com>

[AMDGPU][LowerModuleLDS] Refactor partially lowered module detection (#85793)

Refactor the logic that checks if a module contains mixed
absolute/non-lowered LDS GVs.

The check now happens latter

[AMDGPU][LowerModuleLDS] Refactor partially lowered module detection (#85793)

Refactor the logic that checks if a module contains mixed
absolute/non-lowered LDS GVs.

The check now happens latter when the "worklists" are formed. This is
because in some cases (OpenMP) we can have non-lowered GVs in a lowered
module, and this is normal because those GVs are just unused and removed
from the list at some point before the end of `getUsesOfLDSByFunction`.

Doing the check later ensures that if a mixed module is spotted, then
it's a _real_ mixed module that needs rejection, not a module containing
an intentionally ignored GV.

show more ...


Revision tags: llvmorg-18.1.2
# d4569d42 11-Mar-2024 Pierre van Houtryve <pierre.vanhoutryve@amd.com>

[AMDGPU] Let LowerModuleLDS run twice on the same module (#81729)

If all variables in the module are absolute, this means we're running
the pass again on an already lowered module, and that works.

[AMDGPU] Let LowerModuleLDS run twice on the same module (#81729)

If all variables in the module are absolute, this means we're running
the pass again on an already lowered module, and that works.
If none of them are absolute, lowering can proceed as usual.
Only diagnose cases where we have a mix of absolute/non-absolute GVs,
which means we added LDS GVs after lowering, which is broken.

See #81491
Split from #75333

show more ...


Revision tags: llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init
# 888a20c4 09-Jan-2024 Matt Arsenault <Matthew.Arsenault@amd.com>

AMDGPU: Drop amdgpu-no-lds-kernel-id attribute in LDS lowering (#71481)

This is in preparation for moving the run of AMDGPUAttributor earlier.
Currently it infers the lack of the corresponding intr

AMDGPU: Drop amdgpu-no-lds-kernel-id attribute in LDS lowering (#71481)

This is in preparation for moving the run of AMDGPUAttributor earlier.
Currently it infers the lack of the corresponding intrinsic calls,
so if we introduce new ones we need to remove the attribute from any
possible transitive callers. This is more conservative than necessary,
we could try to identify specific subgraphs where LDS globals are not
used.

Other options include teaching the attributor to avoid adding it in
cases
where the lowering may choose the table, but this seems more complex.
Alternatively could add a second run which doesn't seem worth it.

Depends #71349

show more ...


# 3406a2bc 04-Dec-2023 Kazu Hirata <kazu@google.com>

[llvm] Stop including tuple (NFC)

Identified with clangd.


Revision tags: llvmorg-17.0.6, llvmorg-17.0.5
# 84a48ee9 11-Nov-2023 Kazu Hirata <kazu@google.com>

[llvm] Stop including llvm/ADT/SetVector.h (NFC)

Identified with clangd.


# 7b9d73c2 07-Nov-2023 Paulo Matos <pmatos@igalia.com>

[NFC] Remove Type::getInt8PtrTy (#71029)

Replace this with PointerType::getUnqual().
Followup to the opaque pointer transition. Fixes an in-code TODO item.


Revision tags: llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0
# e54277fa 11-Sep-2023 Jeremy Morse <jeremy.morse@sony.com>

[NFC][RemoveDIs] Use iterators over inst-pointers when using IRBuilder

This patch adds a two-argument SetInsertPoint method to IRBuilder that
takes a block/iterator instead of an instruction, and up

[NFC][RemoveDIs] Use iterators over inst-pointers when using IRBuilder

This patch adds a two-argument SetInsertPoint method to IRBuilder that
takes a block/iterator instead of an instruction, and updates many call
sites to use it. The motivating reason for doing this is given here [0],
we'd like to pass around more information about the position of debug-info
in the iterator object. That necessitates passing iterators around most of
the time.

[0] https://discourse.llvm.org/t/rfc-instruction-api-changes-needed-to-eliminate-debug-intrinsics-from-ir/68939

Differential Revision: https://reviews.llvm.org/D152468

show more ...


Revision tags: llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3
# f7dcabe5 10-Aug-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

AMDGPU: Pass in TargetMachine to AMDGPULowerModuleLDSPass

https://reviews.llvm.org/D157660


# 1f520600 02-Sep-2023 Matt Arsenault <Matthew.Arsenault@amd.com>

AMDGPU: Use poison instead of undef in module lds pass


1234