aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2021-11-03 12:51:41 +0000
committerWilco Dijkstra <wdijkstr@arm.com>2021-11-03 13:46:05 +0000
commita195c7270e4705a06a9aaade0d721d5f52ca2275 (patch)
treeabb0b6a8fb3ee012a7af5f3cdcb2cad0f044f30d /gcc/tree-vrp.c
parent4096eb50d108a9ccef134f2e891c751b1cc9f6b2 (diff)
downloadgcc-a195c7270e4705a06a9aaade0d721d5f52ca2275.zip
gcc-a195c7270e4705a06a9aaade0d721d5f52ca2275.tar.gz
gcc-a195c7270e4705a06a9aaade0d721d5f52ca2275.tar.bz2
AArch64: Improve GOT addressing
Improve GOT addressing by treating the instructions as a pair. This reduces register pressure and improves code quality significantly. SPECINT2017 improves by 0.6% with -fPIC and codesize is 0.73% smaller. Perlbench has 0.9% smaller codesize, 1.5% fewer executed instructions and is 1.8% faster on Neoverse N1. ChangeLog: 2021-11-02 Wilco Dijkstra <wdijkstr@arm.com> * config/aarch64/aarch64.md (movsi): Add alternative for GOT accesses. (movdi): Likewise. (ldr_got_small_<mode>): Remove pattern. (ldr_got_small_sidi): Likewise. * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Keep GOT accesses as moves. (aarch64_print_operand): Correctly print got_lo12 in L specifier. (aarch64_mov_operand_p): Make GOT accesses valid move operands. * config/aarch64/constraints.md: Add new constraint Usw for GOT access.
Diffstat (limited to 'gcc/tree-vrp.c')
0 files changed, 0 insertions, 0 deletions