- User Since
- May 31 2019, 2:34 AM (79 w, 23 h)
Thu, Dec 3
Wed, Dec 2
Inline canMoveBasicBlock, update BB offsets and make fixFallthrough a lambda.
Use BBUtils to get BB offsets, loop over terminators instead of instructions and other clean-up.
Yeah MBP moves the loop blocks (preheader, body etc.) closer together but unfortunately moves the WLSs branch target above the WLS. So it does some good things but also some bad things. After looking at MBP I thought it would be simpler to make a target pass rather than juggle things around in MBP that could end up affecting other targets.
- I know we don't nest WLSTPs for profitability reasons, but in theory we could. Not sure we need to check this though. But in general my impression is that some more test can be added, but perhaps you were still working on that.
I wasn't sure if it was possible or not, but thought I'd add the checks in there just in case. I'm OK with removing them if they definitely are unnecessary. I'm also working on testing a nested while loop, can you think of any other tests I should add?
- I am wondering if some cost-modeling is required. For example, if the iteration count is very low, would that change things?
That is a good idea. It would be good to get an idea of the cycles saved by converting the while loop into a LOL compared to those needed by the branches that replace fallthrough.
Tue, Dec 1
Wed, Nov 25
Very nice change, looks good to me.
Fri, Nov 20
Thu, Nov 19
Fix test ordering. This is an NFC so I will commit with the previous approval.
Wed, Nov 18
Tue, Nov 17
Use std::any_of and hasVPRUse.
Add another test case and format
Mon, Nov 16
Get VPR def when merging across blocks rather than keeping a pointer to the VCMP.
Fri, Nov 13
Thu, Nov 12
Clean up tests
Check for VPR use rather than predicate, pass VCMP as argument to ReplaceVCMPWithVPT, make nullptr the default VCMP value and remove impossible VPST vase.
Wed, Nov 11
Add more tests and check for instructions between the VCMP and VPST that use vpr.
Tue, Nov 10
Mon, Nov 9
LGTM! Will we need to make similar change for the combination that happens in the LowOverheadLoops pass as well?
Fri, Nov 6
Don't merge a VCMP and a preceeding VPST.
Add a check for the VPR def at the VPST.
Nov 2 2020
Clean up the test.
The TP at the end of the name somewhat implies that this is only for tail predication, would it make sense to change t2DoLoopStart to take the extra register?
Oct 30 2020
The code that this change depends on has been reverted so I will close this and re-visit it once those changes have been re-worked.
The code that this change depends on has been reverted so I will delay close this and re-visit it once those changes have been re-worked.
Thanks for the review. I will delay working on this until @dmgreen 's lr patch is in as it affect fix this.
Oct 20 2020
Oct 19 2020
Oct 16 2020
Rebase on top of https://reviews.llvm.org/D89549 and format code.
Oct 9 2020
Simplify logic and add check for LR being live-out.
Oct 8 2020
Oct 7 2020
Looks good to me, thanks Dave.
Oct 6 2020
Oct 5 2020
Add check for the valid vector types.
Oct 2 2020
Perform the folding in a DAG combination rather than lowering.
Sep 29 2020
Add type promotion checks and two new tests
Sep 28 2020
Sep 24 2020
Nice change! LGTM
Add truncate_sext test
Closed since it's no longer needed.
Sep 23 2020
Allow inverted condition codes
Sep 21 2020
Be a bit more strict.
Fold using the LHS and check for LHS and RHS opcodes explicitly.
Sep 18 2020
Support commuted operands and add tests to cover them.
Sep 17 2020
Sep 16 2020
Tests updated in rGac2717bfdd0d
Closed by rGef0b9f3307a1
Sep 15 2020
Clean up the formatting a little.
Remove -O3 from test and improve VCMP detection.