Spill.xcc
Christophe Guillon (Christophe.Guillon@st.com).
Copyright 2002 - 2007 STMicroelectronics.
This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.
!Spill_initCodeRegion/Spill_finiCodeRegion -- Perform init/fini for a coderegion.
// void Spill_initCodeRegion(CodeRegion this); void Spill_finiCodeRegion(CodeRegion this);
!Spill_appendSpill -- Generates an unique stacked location for the temporary (spilled_temporary). Append in BasicBlock (bb) after Operation (where) the spill into the destination temporary (dst). Mark the spill operation as OperationFlag_SpillCode. Operation (where) may be NULL, in this case the spill operation is inserted first in the BasicBlock.
// void Spill_appendSpill(BasicBlock bb, Operation where, Temporary src, Temporary spilled_temporary);
!Spill_insertReload -- Generates an unique stacked location for the temporary (spilled_temporary). Insert in BasicBlock (bb) before Operation (where) the reload into the destination temporary (dst). Mark the reload operation as OperationFlag_SpillCode. Operation (where) may be NULL, in this case the reload operation is appended last in the BasicBlock (before control operations).
// void Spill_insertReload(BasicBlock bb, Operation where, Temporary dst, Temporary spilled_temporary);
!Spill_genStackedLocation -- Generates an unique stacked location for the given temporary. Returns the same temporary symbol for all invocations with the same temporary
// Temporary Spill_genStackedLocation(Temporary spilled_temporary);
!Spill_getRematerializeValue -- Returns the absolute or symbol temporary for the rematerialize value of the Temporary (spilled_temporary). Only valid if the Temporary has the isRemater property.
// Temporary Spill_getRematerializeValue(Temporary spilled_temporary);
!Spill_getHomeLocation -- Returns the symbol temporary for the homing location of the Temporary (spilled_temporary). Only valid if the Temporary has the isHomeable property.
// Temporary Spill_getHomeLocation(Temporary spilled_temporary);
!Spill_getSpillCost -- Returns the cost for a spill (store) of the temporary.
// float Spill_getSpillCost(Temporary spilled_temporary);
!Spill_getReloadCost -- Returns the cost for a reload (load) of the temporary.
// float Spill_getReloadCost(Temporary spilled_temporary);
Spill_INIT— Initialize the Spill module.
#define Spill_INIT()
Spill_FINI— Finalize the Spill module.
#define Spill_FINI()