summaryrefslogtreecommitdiff
path: root/includes/compiler/IroVars.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/compiler/IroVars.h')
-rw-r--r--includes/compiler/IroVars.h47
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