This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
> -----Original Message----- > From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches- > owner@gcc.gnu.org] On Behalf Of bin.cheng > Sent: Monday, September 02, 2013 3:09 PM > To: Richard Earnshaw > Cc: gcc-patches@gcc.gnu.org > Subject: RE: [PATCH ARM]Refine scaled address expression on ARM > > > > > -----Original Message----- > > From: Richard Earnshaw > > Sent: Thursday, August 29, 2013 9:06 PM > > To: Bin Cheng > > Cc: gcc-patches@gcc.gnu.org > > Subject: Re: [PATCH ARM]Refine scaled address expression on ARM > > > > On 28/08/13 08:00, bin.cheng wrote: > > > Hi, > > > > > > This patch refines scaled address expression on ARM. It supports > > > "base+index*scale" in arm_legitimate_address_outer_p. It also tries > > > to legitimize "base + index * scale + offset" with "reg <- base + > > > offset; reg > > > + index * scale" by introducing thumb2_legitimize_address. For now > > > + function > > > thumb2_legitimize_address is a kind of placeholder and just does the > > > mentioned transformation by calling to try_multiplier_address. > > > Hoping we can improve it in the future. > > > > > > With this patch: > > > 1) "base+index*scale" is recognized. > > > > That's because (PLUS (REG) (MULT (REG) (CONST))) is not canonical form. > > So this shouldn't be necessary. Can you identify where this > non-canoncial form is being generated? > > > > Oh, for now ivopt constructs "index*scale" to test whether backend > supports scaled addressing mode, which is not valid on ARM, so I was going > to construct "base + index*scale" instead. Since "base + index * scale" is not > canonical form, I will construct the canonical form and drop this part of the > patch. > > Is rest of this patch OK? > Hi Richard, I removed the part over which you concerned and created this updated patch. Is it OK? Thanks. bin 2013-09-18 Bin Cheng <bin.cheng@arm.com> * config/arm/arm.c (try_multiplier_address): New function. (thumb2_legitimize_address): New function. (arm_legitimize_address): Call try_multiplier_address and thumb2_legitimize_address.
Attachment:
6-arm-scaled_address-20130918.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |