MWCC/includes/compiler/COptimizer.h

56 lines
1.2 KiB
C

#ifndef COMPILER_COPTIMIZER_H
#define COMPILER_COPTIMIZER_H
#include "compiler/common.h"
#ifdef __MWERKS__
#pragma options align=mac68k
#endif
typedef struct COptBlockList {
struct COptBlockList *next;
struct COptBlock *block;
} COptBlockList;
typedef struct COptBlock {
struct COptBlock *next;
COptBlockList *blocks;
COptBlockList *blocks2;
Statement *stmt;
short *set1;
short *set2;
UInt32 allocmask;
short x1C;
Boolean x1E;
} COptBlock;
typedef struct COptCSE {
struct COptCSE *next;
struct COptCSE *left;
struct COptCSE *right;
COptBlock *block;
ENode *expr;
ENode *mexpr;
ENode *replaced;
short x1C;
} COptCSE;
typedef struct COptCSEList {
struct COptCSEList *next;
COptCSE *cse;
ENode *expr;
} COptCSEList;
#ifdef __MWERKS__
#pragma options align=reset
#endif
extern COptBlock *basicblocks;
extern Boolean copt_isleaffunction;
extern UInt32 RegAllocMask(short var);
extern void MarkRegAllocMask(short var, short bit, Boolean flag);
extern void SetVarUsage(Object *obj, Boolean noregister);
extern void COpt_SimpleOptimizer(Object *obj, Statement *stmt);
extern Statement *COpt_Optimizer(Object *obj, Statement *stmt);
#endif