Committed. The tests gcc.dg/tree-ssa/loop-1.c and gcc.dg/weak/typeof-2.c assume this setting and are as a consequence riddled with exceptions for targets that actually do yield better code when calling through a register rather than repeatedly the same symbol. Nonetheless, defining it makes sense for MMIX.
(Even better IMHO, this macro shouldn't exist and instead rtx costs be used or perhaps just a target-specific default of flag_no_function_cse.) gcc: * config/mmix/mmix.h (NO_FUNCTION_CSE): Define to 1. --- gcc/gcc/config/mmix/mmix.h.orig Tue Jul 28 03:00:11 2020 +++ gcc/gcc/config/mmix/mmix.h Tue Jul 28 03:06:19 2020 @@ -577,6 +577,9 @@ typedef struct { int regs; int lib; } CU #define SLOW_BYTE_ACCESS 0 +/* A PUSHJ doesn't cost more than a PUSHGO, so don't needlessly create + the latter. */ +#define NO_FUNCTION_CSE 1 /* Node: Sections */