- User Since
- Feb 15 2016, 10:14 PM (191 w, 6 d)
Sep 7 2016
May 10 2016
May 4 2016
May 1 2016
Apr 29 2016
This patch was motivated by performance improvement in commercial benchmark.
However, this patch has different tendency in SPEC and LLVM test-suite.
In SPEC benchmark, compile-time increases by about 10 %. In LLVM test-suite, compile-time decreases by about 0.02 %. Execution time has no regression in both SPEC and LLVM test-suites (0.04% and 0.37% improvement respectively). The data are measured from the average of three times executions.
OK, but this functionality is useful for other backends too. It isn't ideal in the long term to put generic functionality needlessly in target-specific areas.
If you're implementing this in the SLP vectorizer, why do you need to do it here as well?
In SPEC benchmark, compile-time increases by 2.8%. In LLVM test-suite, compile-time decreases by 9 %. The data are measured from the average of three times executions.
Apr 27 2016
This patch doesn't change the default value of MinVecRegSize, so it does not affect the performance.
(On top of this patch, another patch(http://reviews.llvm.org/D19151) is needed to change the default value of MinVecRegSize.)
In commercial benchmark, I found that clang lost the chance of 64-bit SLP vectorization in AArch64.
Although there would be side effect of extension of 64-bit SLP vectorization, the compiler should handle 64-bit SLP vectorization in AArch64. The side effect, if any, should be handled with another patch.
Apr 22 2016
Apr 15 2016
Apr 14 2016
Apr 12 2016
Apr 11 2016
I have answered some of questions. Remaining questions will be answered later.
Apr 8 2016
Mar 23 2016
Removed the function 'vectorizeStoreChain' and modified the function 'tryToVectroizeList'.