Calculating instruction costs
Michael Matz
matz@suse.de
Tue Jul 9 12:38:00 GMT 2013
Hi,
On Tue, 9 Jul 2013, David Given wrote:
> Trying 8, 9 -> 10:
> Successfully matched this instruction:
> (set (reg:SI 47 [ *_5 ])
> (mem:SI (plus:SI (mult:SI (reg/v:SI 43 [ b ])
> (const_int 4 [0x4]))
> (reg:SI 0 r0 [ a ])) [2 *_5+0 S4 A32]))
> rejecting combination of insns 8, 9 and 10
> original costs 8 + 4 + 4 = 16
> replacement cost 32
>
> So, how is it calculating the cost of my instruction? Where's it getting
> that 32 from (which seems weirdly high)?
As you didn't adjust any cost I would guess the high value comes from the
default implementation of address_cost, which simply uses arithmetic cost,
and the MULT in there is quite expensive by default.
See TARGET_ADDRESS_COST in several ports.
Ciao,
Michael.
More information about the Gcc
mailing list