On Wed, Mar 18, 2015 at 5:06 PM, Kyrill Tkachov <kyrylo.tkac...@arm.com> wrote: > > On 17/03/15 19:11, Jeff Law wrote: >> >> On 03/16/2015 04:12 AM, Kyrill Tkachov wrote: >>> >>> Hi all, >>> >>> Eyeballing the mult_by_coeff_cost function I think it has a typo/bug. >>> It's supposed to return the cost of multiplying by a constant 'coeff'. >>> It calculates that by taking the cost of a MULT rtx by that constant >>> and comparing it to the cost of synthesizing that multiplication, and >>> returning >>> the cheapest. However, in the MULT rtx cost calculations it creates >>> a MULT rtx of two REGs rather than the a REG and the GEN_INT of coeff as >>> I would >>> expect. This patches fixes that in the obvious way. >>> >>> Tested aarch64-none-elf and bootstrapped on x86_64-linux-gnu. >>> I'm guessing this is stage 1 material at this point? >>> >>> Thanks, >>> Kyrill >>> >>> 2015-03-13 Kyrylo Tkachov <kyrylo.tkac...@arm.com> >>> >>> * expmed.c (mult_by_coeff_cost): Pass CONT_INT rtx to MULT cost >>> calculation rather than fake_reg. >> >> I'd think stage1, unless you can point to a bug, particularly a >> regression. > > > No regression that I know of. I'll queue it up for stage 1 if it's ok > code-wise.
This function just estimate the max_cost roughly, since it is only used by Tree passes. It shouldn't have much impact on generated code. Maybe some targets doesn't have proper cost function for reg * const rtl expression, also most of calls are in IVOPT, so it would be better if you run some benchmark to make sure there is no surprise. Thanks, bin > > Thanks, > Kyrill > >> Jeff >> > >