ack/mach/proto/mcg/procedure.h

36 lines
797 B
C
Raw Permalink Normal View History

#ifndef PROCEDURE_H
#define PROCEDURE_H
struct local
{
int size;
int offset;
bool is_register;
};
struct procedure
{
const char* name;
struct basicblock* entry;
struct basicblock* exit;
int locals_size;
int spills_size;
int saved_size;
int fp_to_ab; /* argument base (indexes up) */
int fp_to_lb; /* locals base (indexes down) */
int fp_to_sb; /* spill base (indexes up) */
int fp_to_rb; /* saved registers base (indexes up) */
ARRAYOF(struct basicblock) blocks;
IMAPOF(struct local) locals;
ARRAYOF(struct hreg) usedregs;
};
extern void procedure_compile(struct procedure* proc);
extern void procedure_update_bb_graph(struct procedure* proc);
extern struct procedure* current_proc;
#endif
/* vim: set sw=4 ts=4 expandtab : */