Yes I know gcc 3.4.6 is quite old :) but the backend work has started on this 
version for bad reasons and now we plan to make something work (pass a few test 
cases) before migrating to last gcc 4 version.

Concerning REGISTER_MOVE_COST, I don't know what can be fixed with it.
The 3 params of REGISTER_MOVE_COST are (machine_mode mode, regclass from, 
reg_class to).
So I can only write cost for register to register moves.
I don't see any suitable macro to specify immediate to register moves. (in 
gcc3.4.6 internals ....)

Nevertheless, the REGISTER_MOVE_COST is defined with costs 3 for all valid 
moves (C_REGS <-> R_REGS).

Is there a way to prevent totally the allocation of a hard register in specific 
context using 'costs'?

-----Message d'origine-----
De : Ian Lance Taylor [mailto:i...@google.com] 
Envoyé : mercredi 14 septembre 2011 15:40
À : BELBACHIR Selim
Cc : gcc@gcc.gnu.org
Objet : Re: postreload problem using reload_inm and SECONDARY_RELOAD macros

BELBACHIR Selim <selim.belbac...@fr.thalesgroup.com> writes:

> I'm writing a backend for gcc3.4.6 and I'm a bit confused about reload passes.

You know gcc 3.4.6 is really old, right?

> I have no mean to express this limitation inside predicates (because
> pseudo register don't known in which hard register they will be
> allocated), reload pass create some moves from immediate to $R.  :

First guess would be REGISTER_MOVE_COST.

Ian

Reply via email to