MWCC/includes/compiler/IroCSE.h

46 lines
1.0 KiB
C

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