2022-11-20 05:07:22 +00:00
|
|
|
#ifndef COMPILER_IROPROPAGATE_H
|
|
|
|
#define COMPILER_IROPROPAGATE_H
|
|
|
|
|
2022-12-14 00:16:59 +00:00
|
|
|
#include "compiler/IrOptimizer.h"
|
|
|
|
#include "compiler/BitVector.h"
|
|
|
|
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=mac68k
|
|
|
|
#endif
|
|
|
|
struct IROAssign {
|
|
|
|
IROLinear *linear;
|
|
|
|
UInt16 index;
|
|
|
|
UInt16 varIndex;
|
|
|
|
IROLinear *linear2;
|
|
|
|
BitVector *depends;
|
|
|
|
Object *varObj;
|
|
|
|
VarRecord *var;
|
|
|
|
IROAssign *next;
|
|
|
|
IROAssign *prev;
|
|
|
|
UInt16 x20;
|
|
|
|
IRONode *node;
|
|
|
|
};
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=reset
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern IROAssign *IRO_FirstAssign;
|
|
|
|
extern IROAssign *IRO_LastAssign;
|
|
|
|
extern SInt32 IRO_NumAssign;
|
|
|
|
|
|
|
|
extern int IRO_IsRegable(Object *obj);
|
|
|
|
extern Boolean IRO_CopyAndConstantPropagation(void);
|
|
|
|
extern void IRO_ExpressionPropagation(void);
|
2022-11-20 05:07:22 +00:00
|
|
|
|
|
|
|
#endif
|