aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-patterns.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2018-05-25 06:35:30 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-05-25 06:35:30 +0000
commitb883fc9b54d360b5f73bf226bb489e8612502298 (patch)
tree2419d2426ca05211e88a58c9f30bb73e43a06db4 /gcc/tree-vect-patterns.c
parent9143aa524cee23faf8d4f11d0a8a7b5393952406 (diff)
downloadgcc-b883fc9b54d360b5f73bf226bb489e8612502298.zip
gcc-b883fc9b54d360b5f73bf226bb489e8612502298.tar.gz
gcc-b883fc9b54d360b5f73bf226bb489e8612502298.tar.bz2
Try harder to preserve operand ties in maybe_legitimize_operands
maybe_legitimize_operands normally goes through each operand in turn and legitimises it in isolation. For example, if two operands to an instruction initially have constant value C, and the instruction requires both operands to be registers, the function ends up forcing C into a register twice and passing two different registers to the instruction. I think we should try a bit harder to preserve the rtx_equal_p property, if it's easy to do. Some targets can optimise that case better than they would the general case of all operands being different. This is particularly true for SVE after the upcoming changes to the IFN_COND_* routines. This is hard to test on its own, but is covered by the upcoming IFN_COND_* patches. 2018-05-25 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * optabs.c (can_reuse_operands_p): New function. (maybe_legitimize_operands): Try to reuse the results for earlier operands. From-SVN: r260706
Diffstat (limited to 'gcc/tree-vect-patterns.c')
0 files changed, 0 insertions, 0 deletions