- User Since
- Dec 4 2018, 6:02 AM (133 w, 1 d)
Mon, Jun 14
May 12 2021
Yes, based on Matt's last comment, there is still a potential problem even though my patch significantly reduces the likelihood of it occurring.
Assert removed in a4db7025a9762c568c7bc9fdd3c64f4a60e31cfc.
Added the assert. The assert seems in order here - no hits in the lit tests or Vulkan CTS. There would have been hits in 194 lit tests if the assert had been placed here without the isInvariant check, which somewhat proves usefulness of the patch.
May 11 2021
May 10 2021
Added mir test.
May 7 2021
Re-purposing patch to not add invariant loads to the map.
May 5 2021
Apr 26 2021
Apr 23 2021
Rebased, added comment in test.
I know it is a legacy pass, but I am convinced of its usefulness in our flow - both in real-world content and lit testing (e.g., no_skip_no_successors in skip-if-dead.ll).
Apr 22 2021
Mar 23 2021
I suspect the compr version was used in the original shader, which was then shortened to the lit file.
Mar 19 2021
Looks good, thanks.
Mar 17 2021
Mar 15 2021
Mar 12 2021
Mar 3 2021
Feb 25 2021
Fixed newline and added static/const.
Alternatively, you could create the set of blocks containing a kill in advance - by looking at function declarations in the module, and if a kill is found then checking its users to find blocks. Whether that would be better depends on how often hasKill() is called, though.
Feb 24 2021
Rebased, changed strictwqm to strict_wqm and updated tests.
Feb 23 2021
Added missing dot in the intrinsic name.
Feb 22 2021
Rebased and updated tests.
Feb 19 2021
Feb 17 2021
Looks good to me (with two nits inline).
Commoned up the SI and GFX10-WAVE64 checks.
Feb 16 2021
Updated commit message with more details and pasted the original error message.
Feb 15 2021
Add the underscore between strict and wwm. Restored the old tests for amdgcn_wwm.
Feb 11 2021
This is the intended patch, no need to change AMDGPUISelDAGToDAG.cpp in the most recent version. Here, due to the updated check in isBoolSGPR the problematic combines that would strip zext will not happen (see SITargetLowering::performAddCombine/performSubCombine). This is similar to the very first approach I put up for a review.
Following the suggesstions of updating isBoolSGPR.
Feb 10 2021
Feb 9 2021
Is it worth adding a test to ensure old intrinsic still works?
Feb 8 2021
See also D96258.
Jan 27 2021
Jan 25 2021
LGTM with a few nits - feel free to ignore them.
Jan 21 2021
Sorry for the lack of activity lately - I plan to get back to this patch in the near future.
Jan 20 2021
Jan 18 2021
LGTM with a few more nits (inline).
Jan 15 2021
Dec 16 2020
Nov 18 2020
I asked myself the same question - this was tried before - see https://reviews.llvm.org/D24544. I do not know any more details.
Added two more instructions: trunc and freeze (thanks @foad).