On 19/10/12 17:51, Greta Yorsh wrote:
-----Original Message-----
From: Richard Earnshaw
Sent: 19 October 2012 16:44
To: Greta Yorsh
Cc: GCC Patches; Ramana Radhakrishnan; ni...@redhat.com;
p...@codesourcery.com
Subject: Re: [PATCH, ARM][1/4] New RTL patterns for LDRD/STRD in Thumb
mode

On 19/10/12 16:20, Greta Yorsh wrote:

Removed the condition "!optimize_function_for_size_p (cfun))".

The condition "current_tune->prefer_ldrd_strd" is needed because the
patterns
for LDRD/STRD appear before the patterns for LDM/STM that can match
the same
RTL
(two register in the list). Condition "reload_completed" does not
help with
it
because peephole optimizations in ldmstm.md may (after reload) create
new
RTL insn
that match this pattern.


The point of the reload_completed is that these patterns have the
potential to cause some problems if they somehow matched during earlier
passes and the address base was an eliminable register.


Thank you for the explanation. Here is an updated patch.

Regression tests and bootstrap in progress for the entire sequence, after
addressing all other comments as well.

OK for trunk, if bootstrap successful?

Thanks,
Greta


ChangeLog


gcc/

2012-10-19  Sameera Deshpande  <sameera.deshpa...@arm.com>
             Greta Yorsh  <greta.yo...@arm.com>

         * config/arm/arm-protos.h (offset_ok_for_ldrd_strd): New
         declaration.
         (operands_ok_ldrd_strd): Likewise.
         * config/arm/arm.c (offset_ok_for_ldrd_strd): New function.
         (operands_ok_ldrd_strd): Likewise.
         * config/arm/arm.md (thumb2_ldrd, thumb2_ldrd_base): New patterns.
         (thumb2_ldrd_base_neg): Likewise.
         (thumb2_strd, thumb2_strd_base, thumb_strd_base_neg): Likewise.
         * predicates.md (ldrd_strd_offset_operand): New predicate.
         * config/arm/constraints.md (Do): New constraint.


OK.

R.


Reply via email to