This is the mail archive of the gcc@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]

RE: postreload problem using reload_inm and SECONDARY_RELOAD macros


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:iant@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.belbachir@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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]