2022-11-20 05:07:22 +00:00
|
|
|
#ifndef COMPILER_IROUSEDEF_H
|
|
|
|
#define COMPILER_IROUSEDEF_H
|
|
|
|
|
2022-12-14 00:16:59 +00:00
|
|
|
#include "compiler/IrOptimizer.h"
|
|
|
|
#include "compiler/BitVector.h"
|
|
|
|
#include "compiler/enode.h"
|
|
|
|
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=mac68k
|
|
|
|
#endif
|
|
|
|
struct IROUse {
|
|
|
|
SInt32 index;
|
|
|
|
IRONode *node;
|
|
|
|
IROLinear *linear;
|
|
|
|
VarRecord *var;
|
|
|
|
IROUse *globalnext;
|
|
|
|
IROUse *varnext;
|
|
|
|
BitVector *x18;
|
|
|
|
UInt16 x1C;
|
|
|
|
};
|
|
|
|
struct IRODef {
|
|
|
|
SInt32 index;
|
|
|
|
IRONode *node;
|
|
|
|
IROLinear *linear;
|
|
|
|
VarRecord *var;
|
|
|
|
IRODef *globalnext;
|
|
|
|
IRODef *varnext;
|
|
|
|
UInt16 x18;
|
|
|
|
Boolean x1A;
|
|
|
|
Boolean x1B;
|
|
|
|
Boolean x1C;
|
|
|
|
Boolean x1D;
|
|
|
|
};
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=reset
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern ENodeType IRO_NonAssignmentOp[MAXEXPR];
|
|
|
|
extern IROUse *IRO_FirstVarUse;
|
|
|
|
extern IROUse *IRO_LastVarUse;
|
|
|
|
|
|
|
|
extern CInt64 IRO_GetSelfAssignmentVal(IROLinear *linear);
|
|
|
|
extern void IRO_InitializeNonAssignmentOpArray(void);
|
|
|
|
extern void IRO_InitializeAssignmentFoldingFunctionArray(void);
|
|
|
|
extern Boolean IRO_UseDef(Boolean optDeadAssignments, Boolean optPropagation);
|
|
|
|
extern void IRO_SplitLifetimes(void);
|
2022-11-20 05:07:22 +00:00
|
|
|
|
|
|
|
#endif
|