Branch: refs/heads/master
Revision: 295ae81
Author: e-kayrakli
Log Message:
Merge pull request #16266 from e-kayrakli/string-comp-perf
Refactor string iterators to reduce generated code size
This PR refactors several string iterators to use a helper proc
. This helps
reduce the code size of the iterators’ bodies and thereby the overall generated
code size as we always inline iterators.
Iterators that are changed:
_cpIndexLen
split
codepoints
The generated code size was initially increased by my #16092. The impact was
especially pronounced in Arkouda. Following are ARKOUDA_QUICK_COMPILE lines of
code with CHPL_COMM=none Chapel setup:
version | Total LOC | Compile Time (s) |
---|---|---|
Pre ASCII Opt | 1533593 | 642 |
Post ASCII Opt (master) | 1921869 | 786 |
Refactored String Iters | 1366355 | 576 |
[Reviewed by @ronawho]
Test:
- [x] standard
- [x] gasnet
Modified Files:
M modules/internal/BytesStringCommon.chpl
M modules/internal/String.chpl
Compare: https://github.com/chapel-lang/chapel/compare/20069880f632...295ae81943ef