- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Apr 5 2023
Apr 3 2023
I decided to keep the error output since it is more
descriptive than the Invalid Opcode error we
would otherwise output.
Mar 31 2023
- add internal error if the mask size is not 32 or 64
Mar 30 2023
- Simplify SelDAG with call to SIInstrInfo::readlaneVGPRToSGPR
- Add comment to clarify that current GISel test is incorrect
- remove [VCC] form pseudo instruction def
Mar 28 2023
After further discussion, @mareko is right and the waitcnts are necessary. Thanks for bringing that up!
In D146829#4224849, @t-tye wrote:The waitcnt's serve two purposes. They notify that the result of the operation is available to the thread that requested it, and they ensure that the effect of the operation is visible to other threads before this thread continues to do other operations. This latter purpose is used to ensure the happens-before relationship in the memory model. So for example, if a VMEM release atomic is done at workgroup scope, should these operations be visible to other threads before the result that is store-released onto VMEM?
If these operations go down the LDS queues (even if they are not performed in the LDS itself), then there are 2 queues for the waves of a workgroup, but a single L1 shared by all waves of a workgroup for VMEM. So to ensure visibility to all waves in the workgroup the LDS operation must be waited to complete before starting the VMEM operation if there needs to be a happens-before relation. That waiting is achieved by the waitcnt on LGKM before executing the VMEM instruction.
Mar 27 2023
In D146829#4224452, @mareko wrote:Are you sure about this? lgkmcnt(0) isn't about accessing LDS memory, but about waiting for the result to be received from the LDS block.
- editing DSInstructions.td instead of SIInsertWaitcnts.cpp
Mar 24 2023
Mar 21 2023
- Fix typos
- Rename variable
- Simplify GISel Implementation by using legalizeOperands
- Remove unnecessary checks.
- Remove redundant tests and move GISel ones to SDAG tests
- Increase readability.
Mar 17 2023
Feb 22 2023
Feb 21 2023
Remove gfx11 from MIR tests
Added MIR Tests for gfx10 and gfx11.
Feb 20 2023
Feb 14 2023
Jan 23 2023
- [AMDGPU] reverting separation of for-loops
Jan 22 2023
- [AMDGPU] reverting separation of for-loops
Jan 20 2023
- [AMDGPU] reverting separation of for-loops
Jan 16 2023
Jan 11 2023
- [AMDGPU] Removing redundant zero-check for mults
Jan 10 2023
- [GISel] Adding KnownBitsAnalysis to Legalizer
- [AMDGPU] Wide multiplies with Known Bits Analysis
- [AMDGPU] Improved wide multiplies tests
- [GISel/AMDGPU] caching results of isZero()
- [AMDGPU] Inlining conditions in buildMultiply
- [AMDGPU] Removing redundant zero-check for mults
Jan 5 2023
Dec 27 2022
- [AMDGPU] Wide multiplies with Known Bits Analysis
- [AMDGPU] Improved wide multiplies tests
- [AMDGPU] Improved wide multiplies tests
Dec 26 2022
- [GISel] Adding KnownBitsAnalysis to Legalizer
- [AMDGPU] Wide multiplies with Known Bits Analysis
- [AMDGPU] Improved wide multiplies tests
Fixing constructor issues by moving the default parameter to the header.
Fixing constructor issues by moving the default parameter to the header.
Dec 24 2022
Improved tests with better naming.
Better variable naming in LegalizerInfo.
Added constructor again because that was causing issues.
- [AMDGPU] Improved naming of mul-known-bits tests
- [AMDGPU] Better variable naming in LegalizerInfo
Dec 23 2022
Improved tests with better naming.
Better variable naming in LegalizerInfo.
Added constructor again because that was causing issues.
Dec 20 2022
Dec 16 2022
Adding the new test file
Adressing the redundant constructor and minor format issues
Adding missing commits.
Fixing indentation
Added missing commits