forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitf044d71
committed
Use ARMv8 CRC instructions where available.
ARMv8 introduced special CPU instructions for calculating CRC-32C. Usethem, when available, for speed.Like with the similar Intel CRC instructions, several factors affectwhether the instructions can be used. The compiler intrinsics for them mustbe supported by the compiler, and the instructions must be supported by thetarget architecture. If the compilation target architecture does notsupport the instructions, but adding "-march=armv8-a+crc" makes themavailable, then we compile the code with a runtime check to determine ifthe host we're running on supports them or not.For the runtime check, use glibc getauxval() function. Unfortunately,that's not very portable, but I couldn't find any more portable way to doit. If getauxval() is not available, the CRC instructions will still beused if the target architecture supports them without any additionalcompiler flags, but the runtime check will not be available.Original patch by Yuqi Gu, heavily modified by me. Reviewed by AndresFreund, Thomas Munro.Discussion:https://www.postgresql.org/message-id/HE1PR0801MB1323D171938EABC04FFE7FA9E3110%40HE1PR0801MB1323.eurprd08.prod.outlook.com1 parent638a199 commitf044d71
File tree
11 files changed
+456
-41
lines changed- config
- src
- include
- port
- port
- tools/msvc
11 files changed
+456
-41
lines changedLines changed: 34 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
667 | 667 |
| |
668 | 668 |
| |
669 | 669 |
| |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + |
Lines changed: 180 additions & 14 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
646 | 646 |
| |
647 | 647 |
| |
648 | 648 |
| |
| 649 | + | |
649 | 650 |
| |
650 | 651 |
| |
651 | 652 |
| |
| |||
17254 | 17255 |
| |
17255 | 17256 |
| |
17256 | 17257 |
| |
| 17258 | + | |
| 17259 | + | |
| 17260 | + | |
| 17261 | + | |
| 17262 | + | |
| 17263 | + | |
| 17264 | + | |
| 17265 | + | |
| 17266 | + | |
| 17267 | + | |
| 17268 | + | |
| 17269 | + | |
| 17270 | + | |
| 17271 | + | |
| 17272 | + | |
| 17273 | + | |
| 17274 | + | |
| 17275 | + | |
| 17276 | + | |
| 17277 | + | |
| 17278 | + | |
| 17279 | + | |
| 17280 | + | |
| 17281 | + | |
| 17282 | + | |
| 17283 | + | |
| 17284 | + | |
| 17285 | + | |
| 17286 | + | |
| 17287 | + | |
| 17288 | + | |
| 17289 | + | |
| 17290 | + | |
| 17291 | + | |
| 17292 | + | |
| 17293 | + | |
| 17294 | + | |
| 17295 | + | |
| 17296 | + | |
| 17297 | + | |
| 17298 | + | |
| 17299 | + | |
| 17300 | + | |
| 17301 | + | |
| 17302 | + | |
| 17303 | + | |
| 17304 | + | |
| 17305 | + | |
| 17306 | + | |
| 17307 | + | |
| 17308 | + | |
| 17309 | + | |
| 17310 | + | |
| 17311 | + | |
| 17312 | + | |
| 17313 | + | |
| 17314 | + | |
| 17315 | + | |
| 17316 | + | |
| 17317 | + | |
| 17318 | + | |
| 17319 | + | |
| 17320 | + | |
| 17321 | + | |
| 17322 | + | |
| 17323 | + | |
| 17324 | + | |
| 17325 | + | |
| 17326 | + | |
| 17327 | + | |
| 17328 | + | |
| 17329 | + | |
| 17330 | + | |
| 17331 | + | |
| 17332 | + | |
| 17333 | + | |
| 17334 | + | |
| 17335 | + | |
| 17336 | + | |
| 17337 | + | |
| 17338 | + | |
| 17339 | + | |
| 17340 | + | |
| 17341 | + | |
| 17342 | + | |
| 17343 | + | |
| 17344 | + | |
| 17345 | + | |
| 17346 | + | |
| 17347 | + | |
| 17348 | + | |
| 17349 | + | |
| 17350 | + | |
| 17351 | + | |
| 17352 | + | |
| 17353 | + | |
| 17354 | + | |
| 17355 | + | |
| 17356 | + | |
| 17357 | + | |
| 17358 | + | |
| 17359 | + | |
| 17360 | + | |
| 17361 | + | |
| 17362 | + | |
| 17363 | + | |
| 17364 | + | |
| 17365 | + | |
| 17366 | + | |
| 17367 | + | |
| 17368 | + | |
| 17369 | + | |
| 17370 | + | |
| 17371 | + | |
| 17372 | + | |
| 17373 | + | |
| 17374 | + | |
| 17375 | + | |
| 17376 | + | |
| 17377 | + | |
| 17378 | + | |
| 17379 | + | |
| 17380 | + | |
| 17381 | + | |
| 17382 | + | |
| 17383 | + | |
| 17384 | + | |
| 17385 | + | |
| 17386 | + | |
17257 | 17387 |
| |
17258 | 17388 |
| |
17259 |
| - | |
17260 |
| - | |
17261 |
| - | |
17262 |
| - | |
17263 |
| - | |
17264 |
| - | |
| 17389 | + | |
| 17390 | + | |
| 17391 | + | |
| 17392 | + | |
| 17393 | + | |
| 17394 | + | |
| 17395 | + | |
| 17396 | + | |
| 17397 | + | |
| 17398 | + | |
| 17399 | + | |
17265 | 17400 |
| |
17266 | 17401 |
| |
17267 | 17402 |
| |
17268 |
| - | |
| 17403 | + | |
| 17404 | + | |
17269 | 17405 |
| |
17270 | 17406 |
| |
17271 | 17407 |
| |
17272 |
| - | |
| 17408 | + | |
| 17409 | + | |
17273 | 17410 |
| |
17274 | 17411 |
| |
17275 | 17412 |
| |
17276 |
| - | |
17277 |
| - | |
17278 |
| - | |
| 17413 | + | |
| 17414 | + | |
| 17415 | + | |
| 17416 | + | |
| 17417 | + | |
| 17418 | + | |
| 17419 | + | |
| 17420 | + | |
| 17421 | + | |
| 17422 | + | |
| 17423 | + | |
| 17424 | + | |
| 17425 | + | |
| 17426 | + | |
17279 | 17427 |
| |
17280 | 17428 |
| |
17281 | 17429 |
| |
| |||
17295 | 17443 |
| |
17296 | 17444 |
| |
17297 | 17445 |
| |
17298 |
| - | |
| 17446 | + | |
17299 | 17447 |
| |
17300 | 17448 |
| |
17301 | 17449 |
| |
| 17450 | + | |
| 17451 | + | |
| 17452 | + | |
| 17453 | + | |
| 17454 | + | |
| 17455 | + | |
| 17456 | + | |
| 17457 | + | |
| 17458 | + | |
| 17459 | + | |
| 17460 | + | |
| 17461 | + | |
| 17462 | + | |
| 17463 | + | |
| 17464 | + | |
| 17465 | + | |
17302 | 17466 |
| |
17303 | 17467 |
| |
17304 | 17468 |
| |
17305 |
| - | |
17306 |
| - | |
| 17469 | + | |
| 17470 | + | |
17307 | 17471 |
| |
| 17472 | + | |
| 17473 | + | |
17308 | 17474 |
| |
17309 | 17475 |
| |
17310 | 17476 |
| |
|
Lines changed: 72 additions & 15 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2003 | 2003 |
| |
2004 | 2004 |
| |
2005 | 2005 |
| |
| 2006 | + | |
| 2007 | + | |
| 2008 | + | |
| 2009 | + | |
| 2010 | + | |
| 2011 | + | |
| 2012 | + | |
| 2013 | + | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
| 2018 | + | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
2006 | 2033 |
| |
2007 | 2034 |
| |
2008 |
| - | |
2009 |
| - | |
2010 |
| - | |
2011 |
| - | |
2012 |
| - | |
2013 |
| - | |
| 2035 | + | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
| 2045 | + | |
2014 | 2046 |
| |
2015 | 2047 |
| |
2016 | 2048 |
| |
2017 |
| - | |
| 2049 | + | |
| 2050 | + | |
2018 | 2051 |
| |
2019 | 2052 |
| |
2020 | 2053 |
| |
2021 |
| - | |
| 2054 | + | |
| 2055 | + | |
2022 | 2056 |
| |
2023 | 2057 |
| |
2024 | 2058 |
| |
2025 |
| - | |
2026 |
| - | |
2027 |
| - | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
2028 | 2073 |
| |
2029 | 2074 |
| |
2030 | 2075 |
| |
| |||
2038 | 2083 |
| |
2039 | 2084 |
| |
2040 | 2085 |
| |
2041 |
| - | |
| 2086 | + | |
2042 | 2087 |
| |
2043 | 2088 |
| |
2044 |
| - | |
2045 |
| - | |
2046 |
| - | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
2047 | 2104 |
| |
2048 | 2105 |
| |
2049 | 2106 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
260 | 260 |
| |
261 | 261 |
| |
262 | 262 |
| |
| 263 | + | |
263 | 264 |
| |
264 | 265 |
| |
265 | 266 |
| |
|
0 commit comments
Comments
(0)