2022-11-20 05:07:22 +00:00
|
|
|
#ifndef COMPILER_IROVARS_H
|
|
|
|
#define COMPILER_IROVARS_H
|
|
|
|
|
2022-12-14 00:16:59 +00:00
|
|
|
#include "compiler/IrOptimizer.h"
|
|
|
|
#include "compiler/enode.h"
|
|
|
|
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=mac68k
|
|
|
|
#endif
|
|
|
|
struct VarRecord {
|
|
|
|
UInt16 index;
|
|
|
|
Object *object;
|
|
|
|
int x6;
|
|
|
|
Boolean xA;
|
|
|
|
Boolean xB;
|
|
|
|
Boolean xC;
|
|
|
|
VarRecord *next;
|
|
|
|
IRODef *defs;
|
|
|
|
IROUse *uses;
|
|
|
|
Type *x1A; // bitfield-related
|
|
|
|
IROLinear *x1E;
|
|
|
|
};
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=reset
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern VarRecord *IRO_FirstVar;
|
|
|
|
extern VarRecord *IRO_LastVar;
|
|
|
|
extern SInt32 IRO_NumVars;
|
|
|
|
extern Boolean IRO_IsBitField;
|
|
|
|
extern SInt32 IRO_BaseTerms;
|
|
|
|
extern SInt32 IRO_VarTerms;
|
|
|
|
extern Boolean IRO_IsModifyOp[MAXEXPR];
|
|
|
|
extern Boolean IRO_IsAssignOp[MAXEXPR];
|
|
|
|
|
|
|
|
extern void IRO_InitializeIRO_IsModifyOpArray(void);
|
|
|
|
extern void IRO_InitializeIRO_IsAssignOpArray(void);
|
|
|
|
extern VarRecord *IRO_FindVar(Object *object, Boolean flag1, Boolean flag2);
|
|
|
|
extern void IRO_FindAllVars(void);
|
|
|
|
extern void IRO_ZapVarPtrs(void);
|
|
|
|
extern void IRO_UpdateVars(void);
|
|
|
|
extern void IRO_AddElmToList(IROLinear *linear, IROElmList **list);
|
|
|
|
extern void IRO_DecomposeAddressExpression(IROLinear *linear, IROAddrRecord *rec);
|
|
|
|
extern void IRO_DecomposeAddressExpression_Cheap(IROLinear *linear);
|
|
|
|
extern VarRecord *IRO_FindAssigned(IROLinear *linear);
|
|
|
|
extern void IRO_GetKills(IROLinear *linear);
|
|
|
|
extern void IRO_CheckInit(void);
|
|
|
|
extern void IRO_RewriteBitFieldTemps(void);
|
|
|
|
extern void IRO_ScalarizeClassDataMembers(void);
|
2022-11-20 05:07:22 +00:00
|
|
|
|
|
|
|
#endif
|