Sanjay Patel
f0dd12ec5c
[x86] use zero-extending load of a byte outside of loops too (2nd try)
...
The first attempt missed changing test files for tools
(update_llc_test_checks.py).
Original commit message:
This implements the main suggested change from issue #56498 .
Using the shorter (non-extending) instruction with only
-Oz ("minsize") rather than -Os ("optsize") is left as a
possible follow-up.
As noted in the bug report, the zero-extending load may have
shorter latency/better throughput across a wide range of x86
micro-arches, and it avoids a potential false dependency.
The cost is an extra instruction byte.
This could cause perf ups and downs from secondary effects,
but I don't think it is possible to account for those in
advance, and that will likely also depend on exact micro-arch.
This does bring LLVM x86 codegen more in line with existing
gcc codegen, so if problems are exposed they are more likely
to occur for both compilers.
Differential Revision: https://reviews.llvm.org/D129775
2022-07-19 21:27:08 -04:00
..
2022-06-22 14:38:25 +02:00
2021-05-05 17:35:02 -04:00
2021-08-24 11:09:56 +02:00
2020-11-09 17:21:29 +00:00
2020-11-09 17:21:29 +00:00
2022-06-22 14:38:25 +02:00
2022-07-19 21:27:08 -04:00
2022-06-22 14:38:25 +02:00
2021-05-05 17:35:02 -04:00
2020-11-09 17:21:29 +00:00
2022-06-22 14:38:25 +02:00
2020-11-09 17:21:29 +00:00
2020-11-09 17:21:29 +00:00
2022-06-22 14:38:25 +02:00
2020-11-09 17:21:29 +00:00
2022-06-22 14:38:25 +02:00
2022-06-22 14:38:25 +02:00
2022-06-22 14:38:25 +02:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2021-09-20 13:00:58 +02:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2020-09-23 14:10:33 -07:00
2020-11-16 09:45:55 +08:00
2021-09-20 13:00:58 +02:00
2021-08-24 11:09:56 +02:00
2021-08-24 11:09:56 +02:00
2021-08-24 11:09:56 +02:00
2021-08-24 11:09:56 +02:00
2021-08-24 11:09:56 +02:00
2021-06-30 16:54:13 -04:00
2021-09-20 13:00:58 +02:00
2020-11-17 11:25:55 +08:00
2020-11-17 11:25:55 +08:00
2020-11-17 11:25:55 +08:00
2021-08-24 11:09:56 +02:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-08-24 11:09:56 +02:00
2022-07-19 21:27:08 -04:00
2022-07-19 21:27:08 -04:00
2022-06-22 14:38:25 +02:00
2020-11-09 17:21:29 +00:00
2020-09-09 14:31:12 -07:00
2022-06-22 14:38:25 +02:00
2022-06-22 14:38:25 +02:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2020-11-09 17:21:29 +00:00
2021-06-30 16:54:13 -04:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2021-06-30 16:54:13 -04:00
2020-11-16 09:45:55 +08:00
2022-05-18 12:25:45 +01:00
2020-11-16 09:45:55 +08:00
2022-03-31 18:49:23 -04:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-09-20 12:55:56 +01:00
2020-11-16 09:45:55 +08:00
2020-11-16 09:45:55 +08:00
2021-08-24 11:09:56 +02:00
2022-06-22 14:38:25 +02:00
2022-06-22 14:38:25 +02:00
2021-06-30 16:54:13 -04:00
2021-05-04 16:36:37 -04:00
2021-08-24 11:09:56 +02:00
2020-11-09 17:21:29 +00:00
2021-08-24 11:09:56 +02:00
2021-08-24 11:09:56 +02:00
2021-05-24 19:43:40 +02:00
2021-12-05 15:55:59 -05:00
2020-11-09 17:21:29 +00:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00
2021-06-30 16:54:13 -04:00