aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/interface.c
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2019-08-15 18:15:33 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2019-08-15 11:15:33 -0700
commitd321551cea11f27a9afd67ece9bbda095a579950 (patch)
tree056702cbc19ede82eb3946c4ea0ba9c2de6de03f /gcc/fortran/interface.c
parentd91f618d155a418acd7a7c9188af4c15d2583541 (diff)
downloadgcc-d321551cea11f27a9afd67ece9bbda095a579950.zip
gcc-d321551cea11f27a9afd67ece9bbda095a579950.tar.gz
gcc-d321551cea11f27a9afd67ece9bbda095a579950.tar.bz2
i386: Separate costs of pseudo registers from hard registers
processor_costs has costs of RTL expressions with pseudo registers and and costs of hard register moves: 1. Costs of RTL expressions are used to generate the most efficient RTL operations with pseudo registers. 2. Costs of hard register moves are used by register allocator to decide how to allocate and move hard registers. Since relative costs of pseudo register load and store versus pseudo register moves in RTL expressions can be different from relative costs of hard registers, we should separate costs of RTL expressions with pseudo registers from costs of hard registers so that register allocator and RTL expressions can be improved independently. This patch moves costs of hard register moves to the new hard_register field and duplicates costs of moves which are also used for costs of RTL expressions. PR target/90878 * config/i386/i386.c (inline_memory_move_cost): Use hard_register for costs of hard register moves. (ix86_register_move_cost): Likewise. * config/i386/i386.h (processor_costs): Move costs of hard register moves to hard_register. Add int_load, int_store, xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse, sse_load, sse_store, sse_unaligned_load and sse_unaligned_store for costs of RTL expressions. * config/i386/x86-tune-costs.h: Move costs of hard register moves to hard_register. Duplicate int_load, int_store, xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse, sse_load, sse_store for costs of RTL expressions. From-SVN: r274543
Diffstat (limited to 'gcc/fortran/interface.c')
0 files changed, 0 insertions, 0 deletions