2022-11-20 05:07:22 +00:00
|
|
|
#ifndef COMPILER_IROCSE_H
|
|
|
|
#define COMPILER_IROCSE_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 IROExpr {
|
|
|
|
Boolean x0;
|
|
|
|
UInt16 index;
|
|
|
|
IROLinear *linear;
|
|
|
|
Object *x8;
|
|
|
|
IRONode *node;
|
|
|
|
BitVector *depends;
|
|
|
|
IROExpr *x14;
|
|
|
|
Boolean couldError;
|
|
|
|
Boolean notSubable;
|
|
|
|
IROLinear *x1A;
|
|
|
|
VarRecord *x1E;
|
|
|
|
IROLinear *x22;
|
|
|
|
IROExpr *next;
|
|
|
|
};
|
|
|
|
#ifdef __MWERKS__
|
|
|
|
#pragma options align=reset
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern BitVector *IRO_Depends;
|
|
|
|
extern Boolean IRO_NotSubable;
|
|
|
|
extern Boolean IRO_IsVolatile;
|
|
|
|
extern Boolean IRO_CouldError;
|
|
|
|
extern IROExpr *IRO_FirstExpr;
|
|
|
|
extern IROExpr *IRO_LastExpr;
|
|
|
|
extern SInt32 IRO_NumExprs;
|
|
|
|
|
|
|
|
extern void IRO_FindDepends_NoAlloc(IROLinear *linear);
|
|
|
|
extern void IRO_FindDepends(IROLinear *linear);
|
|
|
|
extern void IRO_FindExpressions(BitVector *bv, Boolean flag);
|
|
|
|
extern void IRO_RemoveExpr(IROExpr *expr);
|
|
|
|
extern void IRO_ComputeAvail(void);
|
|
|
|
extern void IRO_CommonSubs(void);
|
|
|
|
extern void IRO_GenerateTopLevelExprsForSubableOperands(void);
|
2022-11-20 05:07:22 +00:00
|
|
|
|
|
|
|
#endif
|