Program.xcc

Benoit Dupont de Dinechin (Benoit.Dupont-de-Dinechin@st.com).

Copyright 2002 - 2007 STMicroelectronics. Copyright 1995 - 1998 Commissariat a l'Energie Atomique.

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.

Program— Representation of a program.
struct Program_;
Program_memory— This Program Memory.
Memory
Program_memory(Program this);
Program_labelTable— This Program LabelTable.
LabelTable
Program_labelTable(Program this);
Program_symbolTable— This Program SymbolTable.
SymbolTable
Program_symbolTable(Program this);
Program_procedureTable— For use by Program_FOREACH_Procedure.
ProcedureTable
Program_procedureTable(Program this);
Program_FOREACH_Procedure— Enumerate this Program Procedure(s).
#define Program_FOREACH_Procedure(this, procedure) \
  ProcedureTable_FOREACH_Procedure(Program_procedureTable(this), procedure)
#define Program_ENDEACH_Procedure \
  ProcedureTable_ENDEACH_Procedure
Program_optimize— This Program Optimize.
Optimize
Program_optimize(Program this);
Program_convention— This Program Convention.
Convention
Program_convention(Program this);
Program_configure— This Program Configure.
Configure
Program_configure(Program this);
Program_dedicated— This Program array of dedicated Temporary(ies).
struct Temporary_ *
Program_dedicated(Program this);
Program_invariants— For use by Program_FOREACH_Temporary.
IBList
Program_invariants(Program this);
Program_FOREACH_TemporaryInvariant— Iterate this Program TemporaryInvariant(s).
#define Program_FOREACH_TemporaryInvariant(this, invariant) \
  IBList_FOREACH(Program_invariants(this), TemporaryInvariant_, invariant)
#define Program_ENDEACH_TemporaryInvariant \
  IBList_ENDEACH;
Program_DEDICATED_FOREACH_Temporary— Iterate this DEDICATED Temporary(ies).
#define Program_DEDICATED_FOREACH_Temporary(this, temporary) { \
  Temporary_ *Program_DEDICATED = Program_dedicated(this); \
  Register Program_REGISTER = Register__UNDEF; \
  for (; Program_REGISTER < Register__COUNT; Program_REGISTER++) { \
    Temporary temporary = Program_DEDICATED + Program_REGISTER;
#define Program_DEDICATED_ENDEACH_Temporary \
  } \
}
Program_makeAbsoluteTemporary— Make a new absolute invariant Temporary.
Temporary
Program_makeAbsoluteTemporary(Program this, ImmediateValue value, Relocation relocation);
Program_makeProcedure— Make a new Procedure for this Program.
Procedure
Program_makeProcedure(Program this, Symbol symbol);
Program_killProcedure— Kill a Procedure of this Program.

Only the global Symbol of the Procedure is left in this Program.

void
Program_killProcedure(Program this, Procedure procedure);