- User Since
- Jan 23 2018, 4:17 PM (156 w, 2 d)
Mon, Jan 11
Thu, Dec 24
Yes. Please review proposed fix https://reviews.llvm.org/D93803. Evgeniy
Thanks for letting me know. Looking now...
Updated test case due to https://reviews.llvm.org/D79485 has landed.
Wed, Dec 23
Dec 23 2020
Added test case.
Dec 22 2020
Dec 20 2020
I had already tried to measure performance with the test-suite previously with out success. This time again I observe big variation. I'm using dedicated performance machine which runs only my process. I've build test-suite as follows:
Dec 18 2020
Dec 4 2020
Dec 3 2020
Dec 2 2020
Nov 12 2020
Nov 2 2020
Oct 30 2020
LGTM. But let chance for others to comment. Thanks.
Oct 29 2020
This currently seems to lead to a bit less stores removed overall on MultiSource/SPEC2000/SPEC2006 with -O3 -flto, but that might be related to some of the limits needing adjustments.
I found PartialLimit preventing DSE to optimize one of my simple cases. Here is the fix https://reviews.llvm.org/D90371 which I believe is beneficial regardless.
Oct 28 2020
Oct 27 2020
Thanks for giving it a try!
Oct 26 2020
Rename DefLoc to ResDefLoc to fix name conflict.
Oct 24 2020
Yeah there have been some substantial changes to the way we find the candidates to remove, but I think the same idea should still apply. It would be ideal to update & rebase the patch, but if you won't have time to do so it would be great if you could share the older version regardless.
Rebased and uploaded here https://reviews.llvm.org/D90095
Oct 20 2020
LGTM with a nit.
Oct 19 2020
Oct 18 2020
I think it makes sense to introduce the proposed heuristic since there is no easy way to estimate cost of the code generated by SCEVExpander at the moment.
Oct 12 2020
Fixed according to Ayal's request.
Oct 9 2020
Does this look fine?
Sanitize MaxIC upfront.
Sep 30 2020
It turned out that in the targeted case there is the following expression min(a,b) = min(min(a,c), b) where rhs min is reassociated. Due to this foldICmpWithMinMax can't handle it. I've uploaded a series of 3 patched for NaryReassociate (https://reviews.llvm.org/D88285, https://reviews.llvm.org/D88286, https://reviews.llvm.org/D88287) which converts that to min(a,b) = min(min(a,b), c). With that in place foldICmpWithMinMax does its job.
Sep 27 2020
Sep 25 2020
Sep 24 2020
Sep 21 2020
I just wanted to briefly check in to see if you made any progress on this or if you think it is worth adding a bug report to keep track of the improvement?
Sep 16 2020
Sep 15 2020
Minor change to test case
Sep 10 2020
Aug 28 2020
Aug 27 2020
I won't have time to look into this in the near future unfortunately, as I am mainly focused on getting things in good shape to enable DSE & MemorySSA by default. It might be good to file a bug report so this opportunity does not drop off our radar. If anyone is interested in giving implementing it a try, even better :)
Aug 26 2020
@fhahn is this patch supposed to support the following case?
Aug 23 2020
Aug 18 2020
Added description of the algorithm to the header + formatting.
Aug 17 2020
I think making 3 transformation passes immune to optnone ruins the whole idea. You really should have mechanism to set very specific and well documented overrides to the default.
I think this should be put on hold until D85781 reworked and relanded again.
Aug 16 2020
How your last commit differs from the approved one? Why you have so many additional changes in the tests?
Aug 13 2020
I don't propose anything completely new here. New algorithm does essentially the same as existing one but
- fixes several correctness issues
- extends the approach to handle loops and invokes in a universal way