r260539 - in /trunk/gcc: ChangeLog config/aarch...

ktkachov@gcc.gnu.org ktkachov@gcc.gnu.org
Tue May 22 15:37:00 GMT 2018


Author: ktkachov
Date: Tue May 22 15:37:11 2018
New Revision: 260539

URL: https://gcc.gnu.org/viewcvs?rev=260539&root=gcc&view=rev
Log:
[AArch64, patch] Refactor of aarch64-ldpstp

This patch removes a lot of duplicated code in aarch64-ldpstp.md.

The patterns that did not previously generate a base register now
do not check for aarch64_mem_pair_operand in the pattern. This has
been extracted to a check in aarch64_operands_ok_for_ldpstp.

All patterns in the file used to have explicit switching code to
swap loads and stores that were in the wrong order.

This has been extracted into aarch64_operands_ok_for_ldpstp
as a final operation after all the checks have been performed. 

2018-05-22  Jackson Woodruff  <jackson.woodruff@arm.com>
            Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-ldpstp.md: Replace uses of
	aarch64_mem_pair_operand with memory_operand and delete operand swapping
	code.
	* config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp):
	Add check for legitimate_address.
	(aarch64_gen_adjusted_ldpstp): Swap operands where appropriate.
	(aarch64_swap_ldrstr_operands): New.
	* config/aarch64/aarch64-protos.h (aarch64_swap_ldrstr_operands):
	Define prototype.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/aarch64/aarch64-ldpstp.md
    trunk/gcc/config/aarch64/aarch64-protos.h
    trunk/gcc/config/aarch64/aarch64.c



More information about the Gcc-cvs mailing list