Christophe Leroy
328e7e487a
powerpc: force inlining of csum_partial() to avoid multiple csum_partial() with GCC10
...
ppc-linux-objdump -d vmlinux | grep -e "<csum_partial>" -e "<__csum_partial>"
With gcc9 I get:
c0017ef8 <__csum_partial>:
c00182fc: 4b ff fb fd bl c0017ef8 <__csum_partial>
c0018478: 4b ff fa 80 b c0017ef8 <__csum_partial>
c03e8458: 4b c2 fa a0 b c0017ef8 <__csum_partial>
c03e8518: 4b c2 f9 e1 bl c0017ef8 <__csum_partial>
c03ef410: 4b c2 8a e9 bl c0017ef8 <__csum_partial>
c03f0b24: 4b c2 73 d5 bl c0017ef8 <__csum_partial>
c04279a4: 4b bf 05 55 bl c0017ef8 <__csum_partial>
c0429820: 4b be e6 d9 bl c0017ef8 <__csum_partial>
c0429944: 4b be e5 b5 bl c0017ef8 <__csum_partial>
c042b478: 4b be ca 81 bl c0017ef8 <__csum_partial>
c042b554: 4b be c9 a5 bl c0017ef8 <__csum_partial>
c045f15c: 4b bb 8d 9d bl c0017ef8 <__csum_partial>
c0492190: 4b b8 5d 69 bl c0017ef8 <__csum_partial>
c0492310: 4b b8 5b e9 bl c0017ef8 <__csum_partial>
c0495594: 4b b8 29 65 bl c0017ef8 <__csum_partial>
c049c420: 4b b7 ba d9 bl c0017ef8 <__csum_partial>
c049c870: 4b b7 b6 89 bl c0017ef8 <__csum_partial>
c049c930: 4b b7 b5 c9 bl c0017ef8 <__csum_partial>
c04a9ca0: 4b b6 e2 59 bl c0017ef8 <__csum_partial>
c04bdde4: 4b b5 a1 15 bl c0017ef8 <__csum_partial>
c04be480: 4b b5 9a 79 bl c0017ef8 <__csum_partial>
c04be710: 4b b5 97 e9 bl c0017ef8 <__csum_partial>
c04c969c: 4b b4 e8 5d bl c0017ef8 <__csum_partial>
c04ca2fc: 4b b4 db fd bl c0017ef8 <__csum_partial>
c04cf5bc: 4b b4 89 3d bl c0017ef8 <__csum_partial>
c04d0440: 4b b4 7a b9 bl c0017ef8 <__csum_partial>
With gcc10 I get:
c0018d08 <__csum_partial>:
c0019020 <csum_partial>:
c0019020: 4b ff fc e8 b c0018d08 <__csum_partial>
c001914c: 4b ff fe d4 b c0019020 <csum_partial>
c0019250: 4b ff fd d1 bl c0019020 <csum_partial>
c03e404c <csum_partial>:
c03e404c: 4b c3 4c bc b c0018d08 <__csum_partial>
c03e4050: 4b ff ff fc b c03e404c <csum_partial>
c03e40fc: 4b ff ff 51 bl c03e404c <csum_partial>
c03e6680: 4b ff d9 cd bl c03e404c <csum_partial>
c03e68c4: 4b ff d7 89 bl c03e404c <csum_partial>
c03e7934: 4b ff c7 19 bl c03e404c <csum_partial>
c03e7bf8: 4b ff c4 55 bl c03e404c <csum_partial>
c03eb148: 4b ff 8f 05 bl c03e404c <csum_partial>
c03ecf68: 4b c2 bd a1 bl c0018d08 <__csum_partial>
c04275b8 <csum_partial>:
c04275b8: 4b bf 17 50 b c0018d08 <__csum_partial>
c0427884: 4b ff fd 35 bl c04275b8 <csum_partial>
c0427b18: 4b ff fa a1 bl c04275b8 <csum_partial>
c0427bd8: 4b ff f9 e1 bl c04275b8 <csum_partial>
c0427cd4: 4b ff f8 e5 bl c04275b8 <csum_partial>
c0427e34: 4b ff f7 85 bl c04275b8 <csum_partial>
c045a1c0: 4b bb eb 49 bl c0018d08 <__csum_partial>
c0489464 <csum_partial>:
c0489464: 4b b8 f8 a4 b c0018d08 <__csum_partial>
c04896b0: 4b ff fd b5 bl c0489464 <csum_partial>
c048982c: 4b ff fc 39 bl c0489464 <csum_partial>
c0490158: 4b b8 8b b1 bl c0018d08 <__csum_partial>
c0492f0c <csum_partial>:
c0492f0c: 4b b8 5d fc b c0018d08 <__csum_partial>
c049326c: 4b ff fc a1 bl c0492f0c <csum_partial>
c049333c: 4b ff fb d1 bl c0492f0c <csum_partial>
c0493b18: 4b ff f3 f5 bl c0492f0c <csum_partial>
c0493f50: 4b ff ef bd bl c0492f0c <csum_partial>
c0493ffc: 4b ff ef 11 bl c0492f0c <csum_partial>
c04a0f78: 4b b7 7d 91 bl c0018d08 <__csum_partial>
c04b3e3c: 4b b6 4e cd bl c0018d08 <__csum_partial>
c04b40d0 <csum_partial>:
c04b40d0: 4b b6 4c 38 b c0018d08 <__csum_partial>
c04b4448: 4b ff fc 89 bl c04b40d0 <csum_partial>
c04b46f4: 4b ff f9 dd bl c04b40d0 <csum_partial>
c04bf448: 4b b5 98 c0 b c0018d08 <__csum_partial>
c04c5264: 4b b5 3a a5 bl c0018d08 <__csum_partial>
c04c61e4: 4b b5 2b 25 bl c0018d08 <__csum_partial>
gcc10 defines multiple versions of csum_partial() which are just
an unconditionnal branch to __csum_partial().
To enforce inlining of that branch to __csum_partial(),
mark csum_partial() as __always_inline.
With this patch with gcc10:
c0018d08 <__csum_partial>:
c0019148: 4b ff fb c0 b c0018d08 <__csum_partial>
c001924c: 4b ff fa bd bl c0018d08 <__csum_partial>
c03e40ec: 4b c3 4c 1d bl c0018d08 <__csum_partial>
c03e4120: 4b c3 4b e8 b c0018d08 <__csum_partial>
c03eb004: 4b c2 dd 05 bl c0018d08 <__csum_partial>
c03ecef4: 4b c2 be 15 bl c0018d08 <__csum_partial>
c0427558: 4b bf 17 b1 bl c0018d08 <__csum_partial>
c04286e4: 4b bf 06 25 bl c0018d08 <__csum_partial>
c0428cd8: 4b bf 00 31 bl c0018d08 <__csum_partial>
c0428d84: 4b be ff 85 bl c0018d08 <__csum_partial>
c045a17c: 4b bb eb 8d bl c0018d08 <__csum_partial>
c0489450: 4b b8 f8 b9 bl c0018d08 <__csum_partial>
c0491860: 4b b8 74 a9 bl c0018d08 <__csum_partial>
c0492eec: 4b b8 5e 1d bl c0018d08 <__csum_partial>
c04a0eac: 4b b7 7e 5d bl c0018d08 <__csum_partial>
c04b3e34: 4b b6 4e d5 bl c0018d08 <__csum_partial>
c04b426c: 4b b6 4a 9d bl c0018d08 <__csum_partial>
c04b463c: 4b b6 46 cd bl c0018d08 <__csum_partial>
c04c004c: 4b b5 8c bd bl c0018d08 <__csum_partial>
c04c0368: 4b b5 89 a1 bl c0018d08 <__csum_partial>
c04c5254: 4b b5 3a b5 bl c0018d08 <__csum_partial>
c04c60d4: 4b b5 2c 35 bl c0018d08 <__csum_partial>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/a1d31f84ddb0926813b17fcd5cc7f3fa7b4deac2.1602759123.git.christophe.leroy@csgroup.eu
2020-12-15 22:50:11 +11:00
..
2020-12-09 23:48:13 +11:00
2020-12-09 23:48:13 +11:00
2020-12-04 01:01:17 +11:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2020-01-25 12:18:51 -05:00
2018-07-30 22:48:16 +10:00
2020-10-22 14:26:09 +11:00
2020-10-08 12:50:52 +11:00
2019-05-24 17:27:11 +02:00
2020-12-04 22:13:19 +11:00
2017-11-02 11:10:55 +01:00
2020-12-04 01:01:10 +11:00
2020-11-19 14:50:13 +11:00
2017-11-02 11:10:55 +01:00
2019-06-07 19:00:14 +10:00
2020-12-09 23:48:14 +11:00
2019-05-30 11:26:32 -07:00
2020-10-25 14:51:49 -07:00
2020-09-02 11:00:21 +10:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2020-12-15 22:50:11 +11:00
2020-12-04 01:01:10 +11:00
2020-05-28 23:24:36 +10:00
2018-08-08 00:32:25 +10:00
2020-05-19 00:10:37 +10:00
2020-09-17 13:00:46 -04:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:32 -07:00
2020-12-09 17:00:54 +11:00
2017-11-02 11:10:55 +01:00
2019-12-09 13:54:34 -06:00
2017-11-02 11:10:55 +01:00
2020-11-19 14:49:56 +11:00
2019-05-30 11:26:32 -07:00
2019-04-30 22:37:48 +10:00
2020-12-09 16:48:59 +11:00
2020-09-16 22:05:19 +10:00
2020-07-27 00:01:31 +10:00
2020-07-29 23:47:54 +10:00
2019-08-20 21:22:15 +10:00
2017-11-02 11:10:55 +01:00
2020-07-29 21:02:09 +10:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:35 -07:00
2020-05-19 00:11:04 +10:00
2019-05-30 11:26:32 -07:00
2020-10-08 21:17:15 +11:00
2020-08-11 14:13:24 -07:00
2019-06-05 17:30:28 +02:00
2020-09-11 09:14:43 +02:00
2020-04-01 14:30:50 +11:00
2020-10-08 12:50:52 +11:00
2018-07-30 22:48:17 +10:00
2020-07-10 12:00:01 +02:00
2019-05-30 11:26:35 -07:00
2020-10-07 22:34:47 +11:00
2020-12-05 21:49:52 +11:00
2019-08-30 09:40:15 +10:00
2019-06-05 17:37:07 +02:00
2020-07-27 00:01:31 +10:00
2020-07-29 21:08:12 +10:00
2020-11-19 23:47:18 +11:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-05-04 22:29:58 +10:00
2019-09-14 00:04:45 +10:00
2017-11-02 11:10:55 +01:00
2020-12-04 01:01:23 +11:00
2020-12-04 01:01:21 +11:00
2020-08-17 23:35:58 +10:00
2020-05-12 19:34:53 +03:00
2017-08-10 23:32:12 +10:00
2019-05-24 17:36:45 +02:00
2019-05-30 11:26:32 -07:00
2017-02-27 18:43:46 -08:00
2019-05-30 11:26:35 -07:00
2019-06-05 17:30:28 +02:00
2019-05-30 11:26:32 -07:00
2020-05-19 00:10:34 +10:00
2020-05-28 23:24:36 +10:00
2017-11-02 11:10:55 +01:00
2020-07-29 23:47:53 +10:00
2020-07-22 23:00:27 +10:00
2017-11-02 11:10:55 +01:00
2020-06-04 19:06:22 -07:00
2019-05-24 17:39:01 +02:00
2020-07-29 21:09:37 +10:00
2020-12-08 21:40:55 +11:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-01-14 20:39:27 +11:00
2020-09-15 22:13:20 +10:00
2020-10-16 12:21:15 -07:00
2020-07-22 00:01:23 +10:00
2017-11-02 11:10:55 +01:00
2020-08-25 01:31:33 +10:00
2017-11-02 11:10:55 +01:00
2020-04-30 12:35:26 +10:00
2017-11-02 11:10:55 +01:00
2020-07-16 13:12:46 +10:00
2017-11-02 11:10:55 +01:00
2020-07-23 17:41:36 +10:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2019-08-27 13:03:34 +10:00
2020-12-04 22:13:19 +11:00
2020-10-06 07:07:03 +02:00
2019-05-30 11:26:32 -07:00
2018-03-13 15:50:37 +11:00
2020-09-02 11:00:19 +10:00
2018-01-19 22:37:01 +11:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:32 -07:00
2020-08-18 13:39:52 +10:00
2020-08-07 10:33:50 -07:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-07-29 23:47:53 +10:00
2020-07-29 23:47:54 +10:00
2017-11-02 11:10:55 +01:00
2018-10-20 13:26:47 +11:00
2019-05-30 11:26:32 -07:00
2020-05-19 00:10:39 +10:00
2020-12-15 13:13:49 +11:00
2020-03-19 16:39:52 +11:00
2019-06-05 17:30:28 +02:00
2020-05-29 16:09:27 +10:00
2020-07-22 21:56:41 +10:00
2020-07-28 12:34:52 +10:00
2020-06-12 11:05:52 -07:00
2019-06-19 17:09:55 +02:00
2020-07-29 21:02:09 +10:00
2019-06-05 17:30:28 +02:00
2020-12-04 01:01:22 +11:00
2020-09-03 14:12:48 +10:00
2020-12-04 01:01:22 +11:00
2020-07-23 15:50:01 +10:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2019-05-21 11:28:45 +02:00
2019-11-24 15:06:33 -08:00
2020-07-10 12:00:01 +02:00
2019-05-30 11:26:39 -07:00
2020-12-08 21:41:01 +11:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:32 -07:00
2020-12-04 01:01:23 +11:00
2017-11-02 11:10:55 +01:00
2019-08-30 09:55:41 +10:00
2018-02-05 21:34:31 +01:00
2020-08-24 14:12:54 +10:00
2019-04-08 12:09:27 +01:00
2020-12-04 01:01:25 +11:00
2020-12-09 16:48:59 +11:00
2017-11-02 11:10:55 +01:00
2020-06-05 12:39:30 -07:00
2020-09-25 00:36:41 +09:00
2019-05-24 17:27:12 +02:00
2017-11-02 11:10:55 +01:00
2018-05-25 12:04:42 +10:00
2019-05-24 17:27:12 +02:00
2019-06-05 17:37:18 +02:00
2017-11-02 11:10:55 +01:00
2019-06-05 17:37:17 +02:00
2019-05-30 11:26:32 -07:00
2018-10-21 19:32:07 +11:00
2019-06-05 17:37:17 +02:00
2019-02-26 23:28:24 +11:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2020-12-11 09:53:10 +11:00
2019-11-13 00:33:22 +11:00
2019-05-30 11:26:32 -07:00
2020-08-07 10:33:50 -07:00
2020-12-09 23:48:14 +11:00
2020-04-10 15:36:21 -07:00
2020-07-27 00:01:30 +10:00
2020-12-04 01:01:22 +11:00
2017-11-02 11:10:55 +01:00
2019-06-05 17:37:06 +02:00
2020-10-15 13:42:49 +11:00
2020-10-06 07:07:03 +02:00
2020-08-04 23:15:59 +10:00
2019-05-30 11:26:32 -07:00
2020-11-19 16:56:55 +11:00
2020-08-17 13:11:22 +10:00
2019-09-24 15:54:09 -07:00
2019-05-03 01:20:23 +10:00
2019-05-03 01:20:23 +10:00
2020-06-09 09:39:14 -07:00
2020-07-20 22:57:59 +10:00
2020-07-26 23:34:19 +10:00
2019-05-30 11:26:32 -07:00
2018-05-25 12:04:41 +10:00
2019-07-15 12:41:26 +10:00
2019-05-30 11:26:32 -07:00
2020-12-04 01:01:30 +11:00
2020-01-23 21:31:17 +11:00
2019-07-13 16:08:36 -07:00
2019-05-24 17:27:12 +02:00
2020-12-04 01:01:10 +11:00
2020-12-11 00:09:09 +11:00
2019-08-22 23:12:47 +10:00
2019-05-30 11:26:35 -07:00
2020-12-04 01:01:26 +11:00
2020-06-02 20:59:20 +10:00
2020-12-04 01:01:22 +11:00
2019-05-30 11:26:39 -07:00
2019-06-05 17:37:07 +02:00
2019-07-13 16:08:36 -07:00
2019-07-05 00:43:50 +10:00
2020-12-04 01:01:25 +11:00
2020-07-27 00:01:29 +10:00
2020-07-27 00:01:29 +10:00
2020-01-23 21:31:14 +11:00
2019-05-30 11:26:32 -07:00
2020-12-05 21:49:18 +11:00
2018-07-30 22:48:17 +10:00
2020-12-09 23:48:14 +11:00
2018-05-25 12:04:43 +10:00
2019-05-30 11:26:32 -07:00
2020-12-08 21:41:02 +11:00
2020-12-08 21:41:01 +11:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-06-18 12:10:37 -07:00
2019-11-12 12:25:49 +11:00
2020-11-19 23:47:18 +11:00
2019-11-13 00:33:22 +11:00
2019-05-30 11:26:32 -07:00
2020-04-01 14:30:51 +11:00
2020-11-19 23:47:18 +11:00
2018-12-04 19:45:01 +11:00
2017-11-02 11:10:55 +01:00
2020-04-01 13:42:13 +11:00
2020-07-26 23:34:26 +10:00
2020-07-26 23:34:26 +10:00
2020-05-26 22:22:21 +10:00
2020-12-11 00:10:25 +11:00
2020-07-27 00:01:32 +10:00
2020-07-29 21:02:12 +10:00
2020-07-27 00:01:23 +10:00
2020-07-27 00:01:29 +10:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:39 -07:00
2019-05-30 11:26:32 -07:00
2020-07-23 17:43:44 +10:00
2018-10-03 15:40:03 +10:00
2018-08-08 00:32:30 +10:00
2020-10-06 11:18:04 +02:00
2020-09-14 23:07:14 +10:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-04-20 16:53:01 +10:00
2020-10-06 23:22:23 +11:00
2020-05-15 11:58:54 +10:00
2018-05-10 23:25:14 +10:00
2019-02-23 22:31:39 +11:00
2019-05-03 01:20:23 +10:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2020-12-04 01:01:25 +11:00
2020-12-04 01:01:32 +11:00
2020-12-04 01:01:10 +11:00
2020-12-09 16:46:56 +11:00
2018-07-30 22:48:21 +10:00
2018-05-24 16:04:02 +10:00
2020-11-06 14:16:19 +11:00
2019-06-19 17:09:55 +02:00
2019-05-01 16:45:05 +10:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-11-05 10:15:59 +11:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-11-28 17:02:31 +11:00
2019-11-28 17:02:31 +11:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2020-04-03 00:09:59 +11:00
2020-05-19 00:10:39 +10:00
2018-10-19 15:09:04 +11:00
2020-04-20 16:53:14 +10:00
2020-12-04 01:01:17 +11:00
2020-12-04 01:01:19 +11:00
2020-04-23 10:50:26 +09:00
2017-11-02 11:10:55 +01:00
2019-05-30 11:26:32 -07:00
2019-12-10 10:12:55 +01:00
2016-11-14 11:11:51 +11:00
2017-11-02 11:10:55 +01:00
2020-05-07 22:58:31 +10:00
2020-12-11 09:53:10 +11:00
2019-05-30 11:26:32 -07:00
2018-05-25 12:04:38 +10:00
2019-05-30 11:26:35 -07:00