User Details
- User Since
- Jul 15 2015, 3:50 PM (402 w, 3 d)
Yesterday
Wed, Mar 29
Thanks for the review! Will commit this version.
Mon, Mar 27
Override getStoreMinimumVF to support vectorization of store v4i8 for AArch64.
Wed, Mar 22
X86 backend also set store of v4i8 as custom. We have similar capability for v4i8.
Tue, Mar 21
@nikic, the original version of this patch is 0.07% slower because more triggered optimizations caused more iterations on huge functions.
http://llvm-compile-time-tracker.com/compare.php?from=d38d6065584ee5dd837e9a629f90c731d8a7dffc&to=94fc2022ff32b63d6c744d3eeff4f304e1a81618&stat=instructions:u
Mon, Mar 20
ping
Fri, Mar 10
I tried isTruncStoreLegalOrCustom and it works, generates the same code as my patch. The final code is
Wed, Mar 8
Mar 2 2023
Feb 24 2023
To improve compile time, now I record the basic blocks contain dead load instructions, at the end of the same iteration, process these blocks again to delete load instructions. So we can avoid the extra iteration on the whole function.
Feb 23 2023
In private email communication, @hans told me he couldn't find any problem in his optimized code, and his fail disappeared after updating his source code. So there is no known problem with this version.
Feb 14 2023
Feb 13 2023
Feb 2 2023
Check for implicit control flow instruction in function findLoadToHoistIntoPred, so we can avoid moving load across unexpected control flow.
Feb 1 2023
It's reverted now. Thanks for the test case. Will improve it in another version.
@reames, I'm happy to revert it once I get your test case, otherwise I have nothing to investigate.
@hans, do you have a reduced test case to demonstrate the problem?
Jan 31 2023
Jan 30 2023
Jan 27 2023
@uabelho, thank you for the reporting! I think you are right. I'm preparing the patch.
Jan 26 2023
Jan 25 2023
Jan 19 2023
Jan 18 2023
Jan 17 2023
Jan 13 2023
Jan 9 2023
@SixWeining @dyung , both reproduction work for me, thanks a lot!
@dyung @chapuni thank you for the report, I have reverted it.
How did you investigate it ? I try to reproduce it according to https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild, but always got following error
... + BUILDBOT_MONO_REPO_PATH= + BUILDBOT_REVISION=llvmorg- + buildbot_update + echo @@@BUILD_STEP update llvmorg-@@@ @@@BUILD_STEP update llvmorg-@@@ + [[ -d '' ]] + local DEPTH=100 + [[ -d llvm-project ]] + cd llvm-project + git fetch origin + git clean -fd + local REV=llvmorg- + git checkout -f llvmorg- error: pathspec 'llvmorg-' did not match any file(s) known to git + git status On branch main
Jan 5 2023
Thanks for the review! Will commit this version.
Dec 21 2022
Dec 20 2022
Dec 19 2022
Rebase the code.
Dec 16 2022
Dec 15 2022
The compile time regression on ClamAV is in file libclamav_htmlnorm.c. The increased compile time is completely in GVN pass, from 4.0s to 5.3s. There is a huge function cli_html_normalise in this file, it's more than 6600 lines in generated assembly file. The statistic result of NumPRELoad increased from 1 to 10 because of this patch. In function GVNPass::runImpl we have
unsigned Iteration = 0; while (ShouldContinue) { LLVM_DEBUG(dbgs() << "GVN iteration: " << Iteration << "\n"); (void) Iteration; ShouldContinue = iterateOnFunction(F); Changed |= ShouldContinue; ++Iteration; }
It means we continuously do GVN on a function until there is no more such optimization applicable. This patch enables more optimizations, potentially it may also cause more iterations on a function. In this case, the loop is executed 4 times without this patch, but 5 times with this patch. These numbers closely correlate to the increased compile time.
Dec 12 2022
Add a test case to show that llvm can generate wrong instructions without this patch.
Dec 8 2022
Compile time improvement.
Dec 7 2022
Dec 5 2022
Any other comments?
Nov 28 2022
ping
Nov 22 2022
Nov 18 2022
ping
Nov 15 2022
Rebase this patch after committing the MachineCSE part.
Nov 14 2022
Nov 11 2022
ping
Nov 10 2022
Nov 4 2022
MachineCSE was changed recently, so rebase this patch. Now it has more impact.
Nov 3 2022
Nov 1 2022
@foad, thanks a lot for reviewing AMDGPU changes!
Oct 28 2022
Oct 27 2022
Any other comments?
Oct 26 2022
Oct 25 2022
Oct 24 2022
Rebase test cases.
Thanks for the review. Will commit this version.
Oct 21 2022
Oct 20 2022
Oct 13 2022
Rebase.
Oct 5 2022
ping