Improve aarch64_legitimate_constant_p
authorWilco Dijkstra <wdijkstr@arm.com>
Fri, 3 Nov 2017 18:19:33 +0000 (18:19 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Fri, 3 Nov 2017 18:19:33 +0000 (18:19 +0000)
commit26895c21eb10cfd6c00285e13e6f13a75cccc1d9
tree7108a16814077daf80f63a291fa8df3f32868b67
parentf66060c60238bc96acae4af983ad8a4dc25d304f
Improve aarch64_legitimate_constant_p

This patch further improves aarch64_legitimate_constant_p.  Allow all
integer, floating point and vector constants.  Allow label references
and non-anchor symbols with an immediate offset.  This allows such
constants to be rematerialized, resulting in smaller code and fewer stack
spills.  SPEC2006 codesize reduces by 0.08%, SPEC2017 by 0.13%.

    gcc/
* config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
Return true for more constants, symbols and label references.
(aarch64_valid_floating_const): Remove unused function.

From-SVN: r254388
gcc/ChangeLog
gcc/config/aarch64/aarch64.c