diff options
| author | Ash Wolf <ninji@wuffs.org> | 2022-12-14 00:16:59 +0000 | 
|---|---|---|
| committer | Ash Wolf <ninji@wuffs.org> | 2022-12-14 00:16:59 +0000 | 
| commit | 25bab8b1fb2fc851ea3f1f630b3de65ca6afdc22 (patch) | |
| tree | c0ee632aa3752884b996c562622e2ece88216ea4 /includes/compiler/IroCSE.h | |
| parent | 9d2728a5605f651934fe67a6fe6986b3e4a2c011 (diff) | |
| download | MWCC-25bab8b1fb2fc851ea3f1f630b3de65ca6afdc22.tar.gz MWCC-25bab8b1fb2fc851ea3f1f630b3de65ca6afdc22.zip | |
haha it's been a while since i last committed, hasn't it
Diffstat (limited to '')
| -rw-r--r-- | includes/compiler/IroCSE.h | 41 | 
1 files changed, 40 insertions, 1 deletions
| diff --git a/includes/compiler/IroCSE.h b/includes/compiler/IroCSE.h index 2030e5b..4bf127c 100644 --- a/includes/compiler/IroCSE.h +++ b/includes/compiler/IroCSE.h @@ -1,6 +1,45 @@  #ifndef COMPILER_IROCSE_H  #define COMPILER_IROCSE_H -#include "compiler/common.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 | 
