Commit 121d2d3
committed
Use SSE2 in is_valid_ascii() where available.
Per flame graph from Jelte Fennema, COPY FROM ... USING BINARY shows
input validation taking at least 5% of the profile, so it's worth trying
to be more efficient here. With this change, validation of pure ASCII is
nearly 40% faster on contemporary Intel hardware. To make this change
legible and easier to adopt to additional architectures, use helper
functions to abstract the platform details away.
Reviewed by Nathan Bossart
Discussion: https://www.postgresql.org/message-id/CAFBsxsG%3Dk8t%3DC457FXnoBXb%3D8iA4OaZkbFogFMachWif7mNnww%40mail.gmail.com1 parent ab97178 commit 121d2d3
3 files changed
+86
-14
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1919 | 1919 | | |
1920 | 1920 | | |
1921 | 1921 | | |
1922 | | - | |
1923 | | - | |
| 1922 | + | |
| 1923 | + | |
| 1924 | + | |
1924 | 1925 | | |
1925 | | - | |
| 1926 | + | |
1926 | 1927 | | |
1927 | 1928 | | |
1928 | 1929 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
22 | 24 | | |
23 | 25 | | |
24 | 26 | | |
| |||
704 | 706 | | |
705 | 707 | | |
706 | 708 | | |
707 | | - | |
| 709 | + | |
708 | 710 | | |
709 | 711 | | |
710 | 712 | | |
711 | 713 | | |
712 | 714 | | |
713 | | - | |
714 | | - | |
715 | | - | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
716 | 720 | | |
717 | 721 | | |
718 | 722 | | |
719 | 723 | | |
720 | 724 | | |
721 | | - | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
722 | 729 | | |
723 | 730 | | |
724 | | - | |
725 | | - | |
726 | 731 | | |
727 | 732 | | |
728 | 733 | | |
| |||
733 | 738 | | |
734 | 739 | | |
735 | 740 | | |
736 | | - | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
737 | 751 | | |
738 | 752 | | |
739 | | - | |
| 753 | + | |
740 | 754 | | |
741 | 755 | | |
742 | 756 | | |
743 | 757 | | |
744 | 758 | | |
745 | | - | |
| 759 | + | |
746 | 760 | | |
747 | 761 | | |
| 762 | + | |
748 | 763 | | |
749 | | - | |
| 764 | + | |
750 | 765 | | |
| 766 | + | |
751 | 767 | | |
752 | 768 | | |
753 | 769 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
55 | 56 | | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
56 | 67 | | |
57 | 68 | | |
58 | 69 | | |
| |||
193 | 204 | | |
194 | 205 | | |
195 | 206 | | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
196 | 251 | | |
0 commit comments