User Details
- User Since
- Aug 17 2015, 4:04 AM (396 w, 12 h)
Dec 13 2022
This can be merged. I have a patch for Mesa.
Aug 8 2022
Jul 20 2022
I think we don't need the pass, but it's hard to tell.
May 4 2022
I suppose the only difference this makes here is potentially in the counter value we wait for? I.e., we may wait for vmcnt(N) with N != 0?
May 3 2022
The IR (NIR) that we translate to LLVM typically contains this sequence of instructions:
- memory_barrier (fence)
- control_barrier (s_barrier)
May 2 2022
We are going to insert amdgcn.s.waitcnt instead of a fence because fences wait for memory stores, which we don't want.
Apr 21 2022
Jan 15 2021
Jan 14 2021
This looks good to me, but I'm not very familiar with LLVM.
Sep 24 2020
Using the new return behavior only for the calling conventions that Mesa doesn't use sounds like the right solution.
Sep 23 2020
Yes, this commit is incorrect. It completely breaks code linking in Mesa OpenGL. s_waitcnt is required at the end of all global functions that return values.
Sep 9 2020
Sep 2 2020
Sep 1 2020
Aug 31 2020
This breaks LDS. LLVMSetAlignment(inst, 4) on loads and stores has no effect. The IR says "align 4", yet the backend still selects b128.
Jul 29 2020
Can you please cherry-pick this to the LLVM 11 branch?
Jan 6 2020
Can you push this after (not before) LLVM 10 has been branched?
Dec 30 2019
Would somebody please push this?
Dec 18 2019
This breaks gfx8. Can you revert?
Sep 30 2019
Sep 12 2019
Yes.
Aug 27 2019
It's supported by Mesa on gfx6-8. I'm OK with this though.
Aug 19 2019
Jul 2 2019
Jun 26 2019
This has a possibly negative impact on Mesa. Both SGPR usage and SGPR spilling increased. I don't see anything suspicious in the generated assembly other than instructions being reordered. I'd like to better understand the side effects of this patch.
Jun 21 2019
This breaks Mesa:
LLVM ERROR: Cannot select: intrinsic %llvm.amdgcn.s.buffer.load
Feb 7 2019
Jan 18 2019
Jan 16 2019
Jan 14 2019
FYI, if there is no feedback on January 15, I'll commit this to get it into LLVM 8.0.
Jan 11 2019
Ping
Jan 10 2019
Nov 28 2018
Nov 26 2018
Use report_fatal_error, add SourceOfDivergence lines
Any comments?
Add InstCombine tests.
Nov 20 2018
Nov 12 2018
If I make m0 integer, DS_ORDERED_COUNT won't be a mem node.
I might change the intrinsic to add the option to insert "s_and_saveexec s[N:M], 1" and "s_mov_b64 exec, s[N:M]" around the intrinsic to get an optimal single-lane block.
Nov 2 2018
I'm concerned that x8 and x16 loads will significantly increase SGPR usage and therefore SGPR spilling. We have a shader database with over 70 games and benchmarks and I guess the results will not be good after this is committed.
Oct 8 2018
Oct 5 2018
Multi-dword LDS opcodes seem to be the culprit.
AMDGPU: Add a fast path for icmp.i1(src, false, NE)
Oct 4 2018
Sep 29 2018
Sep 27 2018
On a related note, another way to decrease VGPR usage is to fold immediates with more than 1 uses. The backend currently folds immediates with only 1 use.
Sep 24 2018
What happens if a shader already does "if (threadID == 0) { do_atomic(); }"? Is the optimization skipped in this case?
Sep 21 2018
Sep 13 2018
Aug 29 2018
Aug 28 2018
This fixes GPU hangs with OpenGL bindless handle arithmetic.
@arsenm Where do you have the patches that preserve NUW?
Aug 27 2018
We can ignore old Mesa + new LLVM, because LLVM 7 is the first release to have 32-bit pointers, and I think we can fix that before release.
Aug 24 2018
Aug 23 2018
Aug 22 2018
Aug 21 2018
Aug 20 2018
Aug 11 2018
Aug 10 2018
Aug 1 2018
Jul 30 2018
The patch is missing a test. shader-db can reproduce it.
Jul 13 2018
Jul 12 2018
This patch along with the prerequisite patch doesn't break Mesa.
Jul 11 2018
This is a no-op change, right? Because the previous code also works.
Jul 9 2018
Jul 5 2018
FYI, this bug is also reproducible on Mesa OpenGL now.
May 23 2018
LGTM.
May 19 2018
How does this pass affect shaders that use a lot of memory instructions but no pointers?
May 16 2018
How can UMDs disable this optimization?