MSP430: Define NO_FUNCTION_CSE
authorJozef Lawrynowicz <jozef.l@mittosystems.com>
Tue, 21 Jul 2020 16:24:03 +0000 (17:24 +0100)
committerJozef Lawrynowicz <jozef.l@mittosystems.com>
Tue, 21 Jul 2020 16:32:06 +0000 (17:32 +0100)
Calling a constant function address costs the same number of clock
cycles as calling an address stored in a register. However, in terms of
instruction length, calling a constant address is more expensive.

Set NO_FUNCTION_CSE to true, only when optimizing for speed.

gcc/ChangeLog:

* config/msp430/msp430.h (NO_FUNCTION_CSE): Set to true at -O2 and
above.

gcc/config/msp430/msp430.h

index f198981ad9e4540014f3b7985022fb3f9b7c5626..e97e833a10c6430853447e7d0ba1b02f89dd6923 100644 (file)
@@ -257,6 +257,11 @@ extern const char *msp430_get_linker_devices_include_path (int, const char **);
   msp430_return_addr_rtx (COUNT)
 
 #define SLOW_BYTE_ACCESS               0
+
+/* Calling a constant function address costs the same number of clock
+   cycles as calling an address stored in a register. However, in terms of
+   instruction length, calling a constant address is more expensive.  */
+#define NO_FUNCTION_CSE (optimize >= 2 && !optimize_size)
 \f
 
 /* Register Usage */