diff options
Diffstat (limited to 'includes/compiler/IroVars.h')
| -rw-r--r-- | includes/compiler/IroVars.h | 47 | 
1 files changed, 46 insertions, 1 deletions
diff --git a/includes/compiler/IroVars.h b/includes/compiler/IroVars.h index 3fbfc2f..9df9ae5 100644 --- a/includes/compiler/IroVars.h +++ b/includes/compiler/IroVars.h @@ -1,6 +1,51 @@  #ifndef COMPILER_IROVARS_H  #define COMPILER_IROVARS_H -#include "compiler/common.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  | 
