2016-04-08 18:35:53

by Denys Vlasenko

[permalink] [raw]
Subject: [PATCH] drivers/gpu/drm/radeon/cik.c: Deinline cik_irq_ack, save 1728 bytes

This function compiles to 1766 bytes of machine code.
Two callsites.

Signed-off-by: Denys Vlasenko <[email protected]>
Cc: Alex Deucher <[email protected]>
Cc: Christian König <[email protected]>
Cc: [email protected]
---
drivers/gpu/drm/radeon/cik.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index 4c30d8c..669cde4 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -7658,7 +7658,7 @@ int cik_irq_set(struct radeon_device *rdev)
* etc.) (CIK). Certain interrupts sources are sw
* generated and do not require an explicit ack.
*/
-static inline void cik_irq_ack(struct radeon_device *rdev)
+static void cik_irq_ack(struct radeon_device *rdev)
{
u32 tmp;

--
2.1.0


2016-04-08 18:35:59

by Denys Vlasenko

[permalink] [raw]
Subject: [PATCH] drivers/gpu/drm/radeon/si.c: Deinline si_irq_ack, save 1792 bytes

This function compiles to 1760 bytes of machine code.
Two callsites.

Signed-off-by: Denys Vlasenko <[email protected]>
Cc: Alex Deucher <[email protected]>
Cc: Christian König <[email protected]>
Cc: [email protected]
---
drivers/gpu/drm/radeon/si.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index f878d69..134917b 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -6242,7 +6242,7 @@ int si_irq_set(struct radeon_device *rdev)
return 0;
}

-static inline void si_irq_ack(struct radeon_device *rdev)
+static void si_irq_ack(struct radeon_device *rdev)
{
u32 tmp;

--
2.1.0

2016-04-08 18:36:07

by Denys Vlasenko

[permalink] [raw]
Subject: [PATCH] drivers/mtd/chips/cfi_cmdset_0020.c: Deinline do_write_buffer, save 5316 bytes

This function compiles to 2554 bytes of machine code.
In C, the function is almost 200 lines long.

It has only one callsite, but forced inlining that much code
makes gcc generate significantly worse code. Let gcc itself decide
what to do.

Signed-off-by: Denys Vlasenko <[email protected]>
CC: David Woodhouse <[email protected]>
CC: Brian Norris <[email protected]>
CC: Dan Carpenter <[email protected]>
CC: Artem Bityutskiy <[email protected]>
CC: [email protected]
CC: [email protected]
---
drivers/mtd/chips/cfi_cmdset_0020.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
index 9a1a6ff..70dd2b1 100644
--- a/drivers/mtd/chips/cfi_cmdset_0020.c
+++ b/drivers/mtd/chips/cfi_cmdset_0020.c
@@ -416,7 +416,7 @@ static int cfi_staa_read (struct mtd_info *mtd, loff_t from, size_t len, size_t
return ret;
}

-static inline int do_write_buffer(struct map_info *map, struct flchip *chip,
+static int do_write_buffer(struct map_info *map, struct flchip *chip,
unsigned long adr, const u_char *buf, int len)
{
struct cfi_private *cfi = map->fldrv_priv;
--
2.1.0