-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow ROW::CopyRangeFrom to be vectorized (#15267)
By rewriting the first major copy loop in `CopyRangeFrom` to use pointers/iterators instead of indices for iteration, the autovectorizer kicks in end neatly rewrites it as an unrolled SIMD loop. This improves performance during traditional window resizes by roughly 2x and will be quite helpful in the future for our more complex reflow resize. Unfortunately, MSVC unrolls the loop by 4x which is too much for our purpose, but there's no option to change that. It's still better than not having any vectorization however, since it kicks in at 32 columns. It also renames the function to `CopyTextFrom` be more in line with the others and to avoid confusion, because it doesn't copy attributes. ## Validation Steps Performed * Traditional resizing works ✅
- Loading branch information
Showing
3 changed files
with
26 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2062,6 +2062,7 @@ vcpkg | |
vcprintf | ||
vcxitems | ||
vec | ||
vectorize | ||
vectorized | ||
VERCTRL | ||
VERTBAR | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters