#ifndef COMPILER_IROVARS_H #define COMPILER_IROVARS_H #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); #endif