Commit graph

13241 commits

Author SHA1 Message Date
Kovid Goyal
ef8e8313ab
For some reason, memcpy is faster than assignment 2024-02-25 09:57:28 +05:30
Kovid Goyal
17cb65e981
Adjust amount of data in the benchmarks for more consistent timing 2024-02-25 09:57:28 +05:30
Kovid Goyal
f2153f060d
add unicode benchmark 2024-02-25 09:57:28 +05:30
Kovid Goyal
48c0b30671
Install simde on CI 2024-02-25 09:57:28 +05:30
Kovid Goyal
e8f67281cf
Warmup font rendering before running benchmark 2024-02-25 09:57:28 +05:30
Kovid Goyal
49a54b086f
Use simde so SIMD speedups work on ARM as well 2024-02-25 09:57:28 +05:30
Kovid Goyal
4790959938
Use -fno-plt
We dont need the PLT and it frees up some registers
2024-02-25 09:57:28 +05:30
Kovid Goyal
33249c872f
Use a better default march for binary builds
x86-64-v2 implies SSE4.2 which should be available everywhere by now. We
will see if we get errors with it.

https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level#architectural_considerations_for_rhel_9
2024-02-25 09:57:28 +05:30
Kovid Goyal
71bf099041
Speed up drawing of printable ascii chars 2024-02-25 09:57:28 +05:30
Kovid Goyal
307acb3f64
Add API to Screen to draw a set of printable ascii chars fast 2024-02-25 09:57:28 +05:30
Kovid Goyal
e5675e9537
Simplify API 2024-02-25 09:57:28 +05:30
Kovid Goyal
9cf425006f
... 2024-02-25 09:57:28 +05:30
Kovid Goyal
c052831291
Dont double parse CSI digits 2024-02-25 09:57:28 +05:30
Kovid Goyal
fe2cd543ba
Switch to same algorithm for 128bit SIMD as used for 256 bit SIMD
Avoids needing to write to the haystack and also less chance of a bug in
the never tested simd since all CPUs I have access to have AVX2
2024-02-25 09:57:28 +05:30
Kovid Goyal
1925d5ea65
Prepare for plain sse4 fallback 2024-02-25 09:57:27 +05:30
Kovid Goyal
aacdffd539
DRYer 2024-02-25 09:57:27 +05:30
Kovid Goyal
a0e1eb4985
AVX2 implementation for find either of two 2024-02-25 09:57:27 +05:30
Kovid Goyal
e4c48a5f17
Add AVX2 implementation of find byte not in range
Also fix alignment bug and ensure the simd finders dont return a pointer
beyond the end
2024-02-25 09:57:27 +05:30
Kovid Goyal
021dd168e5
... 2024-02-25 09:57:27 +05:30
Kovid Goyal
b032313c45
Only use SIMD if CPU supports it at runtime 2024-02-25 09:57:27 +05:30
Kovid Goyal
19a41b4d9a
Use sse4.2 instruction for normal mode printable ascii detection 2024-02-25 09:57:27 +05:30
Kovid Goyal
25e7a2882d
Work on using SIMD for normal mode dispatch 2024-02-25 09:57:27 +05:30
Kovid Goyal
a75fb6509e
... 2024-02-25 09:57:27 +05:30
Kovid Goyal
23c42cb555
... 2024-02-25 09:57:27 +05:30
Kovid Goyal
1f8feea454
Parse new data that is writtne while parsing is in progress in the parse loop
Avoids unnecessary memmove()
2024-02-25 09:57:27 +05:30
Kovid Goyal
f0afdc51af
... 2024-02-25 09:57:27 +05:30
Kovid Goyal
ac6afcb0a8
Release the parser IO lock while parsing 2024-02-25 09:57:27 +05:30
Kovid Goyal
ad7f671a7b
Add a long escape code benchmark 2024-02-25 09:57:27 +05:30
Kovid Goyal
4f67b8b433
Need -msse4.2 on non-native builds 2024-02-25 09:57:27 +05:30
Kovid Goyal
e3d6aa2c60
Use simd in a few loops 2024-02-25 09:57:27 +05:30
Kovid Goyal
89d416806b
... 2024-02-25 09:57:26 +05:30
Kovid Goyal
859b0cc585
Include -march=native for debug builds 2024-02-25 09:57:26 +05:30
Kovid Goyal
8b4209cb97
Also use fast find for pending mode 2024-02-25 09:57:26 +05:30
Kovid Goyal
8dca5a6b9a
... 2024-02-25 09:57:26 +05:30
Kovid Goyal
200e5bf6e3
Examine 8 bytes at once for terminator char 2024-02-25 09:57:26 +05:30
Kovid Goyal
f4819175b0
Start work on vectorizing searches 2024-02-25 09:57:26 +05:30
Kovid Goyal
5921ca1139
Add images benchmark 2024-02-25 09:57:26 +05:30
Kovid Goyal
dbc4b98742
Ignore input_delay when the input buffer is close to full 2024-02-25 09:57:26 +05:30
Kovid Goyal
822c9cb1d6
... 2024-02-25 09:57:26 +05:30
Kovid Goyal
529de9c91d
Allow specifying benchmarks to run on the command line 2024-02-25 09:57:26 +05:30
Kovid Goyal
7914523a16
Add a CSI + ascii test 2024-02-25 09:57:26 +05:30
Kovid Goyal
d39c71f927
Round the time to two digit precision 2024-02-25 09:57:26 +05:30
Kovid Goyal
934f2ede0b
Start work on simple benchmark tool 2024-02-25 09:57:26 +05:30
Kovid Goyal
8dbea2a046
... 2024-02-25 09:57:26 +05:30
Kovid Goyal
38c8100a76
... 2024-02-25 09:57:26 +05:30
Kovid Goyal
a560d86d0f
Use aligned loads for the byte loader 2024-02-25 09:57:26 +05:30
Kovid Goyal
47a493c090
Increase chunk size for graphics protocol since the VT parser now supports it 2024-02-25 09:57:25 +05:30
Kovid Goyal
35da87994b
Fix input_delay not working 2024-02-25 09:57:25 +05:30
Kovid Goyal
f49f2a1b82
Fix buf full -> not full reporting 2024-02-25 09:57:25 +05:30
Kovid Goyal
91c3492455
Allow logging code to log arbitrary length messages 2024-02-25 09:57:25 +05:30