aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-phiopt.c
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@bitrange.com>2021-07-18 04:59:30 +0200
committerHans-Peter Nilsson <hp@bitrange.com>2021-07-30 23:38:49 +0200
commit5b2515f5ae86c21fc13021e1a8728a48e68aa7d6 (patch)
tree2e40b87aaa3982154e36d264b75033f7efeac41c /gcc/tree-ssa-phiopt.c
parentee189a7327565cfcc2441aa308333ad3b6525e6e (diff)
downloadgcc-5b2515f5ae86c21fc13021e1a8728a48e68aa7d6.zip
gcc-5b2515f5ae86c21fc13021e1a8728a48e68aa7d6.tar.gz
gcc-5b2515f5ae86c21fc13021e1a8728a48e68aa7d6.tar.bz2
MMIX: remove generic placeholders parameters in call insn patterns.
I guess the best way to describe these operands, at least for MMIX, is "ballast". Some targets seem to drag along one or two of the incoming pattern operands through the rtl passes and not dropping them until assembly output. Let's stop doing that for MMIX. There really are *two* unused parameters: one is a number corresponding to the stack-size of arguments as a const_int and the other is whatever the target yields for targetm.calls.function_arg (args_so_far, function_arg_info::end_marker ()). There's a mandatory second argument to the "call" RTX, but the target doesn't have to keep it a variable number; it can be replaced by (const_int 0) early, like this. Astute readers may object that as the MMIX call-type insns (PUSHJ, PUSHGO) have a parameter in addition to the address of the called function, so should the emitted RTL. But, that parameter depends only on the local function, not the called function (IOW, it's the same for all calls in a function), and its value isn't known until frame layout time. Having it a parameter in the emitted RTL for the call would just be confusing. (Maybe this will be amended later, if/when improving "shrink-wrapping".) gcc: * config/mmix/mmix.md ("call", "call_value", "*call_real") ("*call_value_real"): Don't generate rtx mentioning the generic operands 1 and 2 to "call", and similarly for "call_value". * config/mmix/mmix.c (mmix_print_operand_punct_valid_p) (mmix_print_operand): Use '!' instead of 'p'.
Diffstat (limited to 'gcc/tree-ssa-phiopt.c')
0 files changed, 0 insertions, 0 deletions