MWCC/includes/compiler/IROUseDef.h

49 lines
1.1 KiB
C

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