summaryrefslogtreecommitdiff
path: root/includes/compiler/IroUtil.h
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2023-01-26 11:30:47 +0000
committerAsh Wolf <ninji@wuffs.org>2023-01-26 11:30:47 +0000
commit094b96ca1df4a035b5f93c351f773306c0241f3f (patch)
tree95ce05e3ebe816c7ee7996206bb37ea17d8ca33c /includes/compiler/IroUtil.h
parentfc0c4c0df7b583b55a08317cf1ef6a71d27c0440 (diff)
downloadMWCC-094b96ca1df4a035b5f93c351f773306c0241f3f.tar.gz
MWCC-094b96ca1df4a035b5f93c351f773306c0241f3f.zip
move lots of source files around to match their actual placement in the original treemain
Diffstat (limited to 'includes/compiler/IroUtil.h')
-rw-r--r--includes/compiler/IroUtil.h127
1 files changed, 0 insertions, 127 deletions
diff --git a/includes/compiler/IroUtil.h b/includes/compiler/IroUtil.h
deleted file mode 100644
index a757025..0000000
--- a/includes/compiler/IroUtil.h
+++ /dev/null
@@ -1,127 +0,0 @@
-#ifndef COMPILER_IROUTIL_H
-#define COMPILER_IROUTIL_H
-
-#include "compiler/IrOptimizer.h"
-#include "compiler/CInt64.h"
-#include "compiler/CParser.h"
-
-#ifdef __MWERKS__
-#pragma options align=mac68k
-#endif
-struct IROList {
- IROLinear *head;
- IROLinear *tail;
-};
-
-struct IROListNode {
- IROList list;
- IROListNode *nextList;
-};
-
-struct IROElmList {
- void *element;
- IROElmList *next;
-};
-
-struct IROAddrRecord {
- IROLinear *linear;
- unsigned short numObjRefs;
- IROElmList *objRefs;
- unsigned short numMisc;
- IROElmList *misc;
- unsigned short numInts;
- IROElmList *ints;
- int x16;
-};
-#ifdef __MWERKS__
-#pragma options align=reset
-#endif
-
-extern Object *FunctionName;
-extern Boolean IRO_IsLeafFunction;
-extern Boolean IRO_FunctionHasReturn;
-extern Boolean DisableDueToAsm;
-extern Boolean LoopOptimizerRun;
-
-extern Object *IRO_IsVariable(IROLinear *linear);
-extern Boolean IRO_IsConstant(IROLinear *linear);
-extern Boolean IRO_IsPow2(IROLinear *linear, SInt32 *powvalue);
-extern Boolean IRO_IsIntConstant(IROLinear *linear);
-extern Boolean IRO_IsFloatConstant(IROLinear *linear);
-extern Boolean IRO_IsVector128Constant(IROLinear *linear);
-extern Boolean IRO_IsAssignment(IROLinear *linear);
-extern Boolean IRO_TypesEqual(Type *a, Type *b);
-extern Type *IRO_UnsignedType(Type *type);
-extern Type *IRO_SignedType(Type *type);
-extern Boolean IRO_is_CPtypeequal(Type *a, Type *b);
-extern Boolean IRO_ExprsSame(IROLinear *a, IROLinear *b);
-extern CLabel *IRO_NewLabel(void);
-extern Boolean IRO_ExprsSameSemantically(IROLinear *a, IROLinear *b);
-extern IROLinear *IRO_FindPrecedAfter(IROLinear *a, IROLinear *iter);
-extern IROLinear *IRO_FindPreced(IROLinear *a);
-extern IROLinear *IRO_FindFirst(IROLinear *linear);
-extern void IRO_CutAndPasteAfter(IROLinear *a, IROLinear *b, IROLinear *c);
-extern Boolean IRO_IsConstantZero(IROLinear *linear);
-extern Boolean IRO_IsConstantOne(IROLinear *linear);
-extern Boolean IRO_IsConstantNegativeOne(IROLinear *linear);
-extern void IRO_NopOut(IROLinear *linear);
-extern void IRO_NopNonSideEffects(IROLinear *linear, SInt32 level);
-extern void IRO_BuildList(IROLinear *linear, Boolean isEntry);
-typedef void (*IROWalkTreeFunc)(IROLinear *linear, Boolean isEntry);
-extern void IRO_WalkTree(IROLinear *linear, IROWalkTreeFunc func);
-extern void IRO_WalkTreeToPropagateFlags(IROLinear *linear, IROWalkTreeFunc func);
-extern void IRO_WalkInts(IROLinear *a, IROLinear *b, IROWalkTreeFunc func);
-extern void IRO_Cut(IROLinear *a, IROLinear *b);
-extern void IRO_Paste(IROLinear *a, IROLinear *b, IROLinear *c);
-extern void IRO_PasteAfter(IROLinear *a, IROLinear *b, IROLinear *c);
-extern void IRO_ClipExpr(IROExpr *expr);
-extern void IRO_ClipExprTree(IROLinear *linear);
-extern void IRO_MoveExpression(IROExpr *expr, IROLinear *linear);
-extern void IRO_InitList(IROList *list);
-extern void IRO_AddToList(IROLinear *linear, IROList *list);
-extern IROLinear *IRO_FindLabelNode(CLabel *label, IROLinear *linear);
-extern void IRO_DuplicateExprRange(IROLinear *start, IROLinear *end, IROList *list);
-extern IROLinear *IRO_DuplicateExpr(IROLinear *linear, IROList *list);
-extern IROLinear *IRO_TempReference(Object *obj, IROList *list);
-extern IROLinear *IRO_LocateFather(IROLinear *linear);
-extern IROLinear *IRO_LocateFather_Cut_And_Paste(IROLinear *a, IROLinear *b);
-extern IROLinear *IRO_LocateFather_Cut_And_Paste_Without_Nopping(IROLinear *a, IROLinear *b);
-extern void IRO_ReplaceReference(IROLinear *a, Object *obj, IROLinear *b);
-extern void IRO_ReplaceReferenceWithNode(IROLinear *a, IROLinear *b);
-extern VarRecord *IRO_GetTemp(IROExpr *expr);
-extern IROLinear *IRO_AssignToTemp(IROExpr *expr);
-extern IROLinear *IRO_FindStart(IROLinear *linear);
-extern void IRO_DeleteCommaNode(IROLinear *linear, IROExpr *expr);
-extern void IRO_RemoveCommaNodeFromIR(void);
-extern IROAddrRecord *IRO_InitAddrRecordPointer(IROLinear *linear);
-extern IROLinear *IRO_HasSideEffect(IROLinear *linear);
-extern IROLinear *IRO_CheckSideEffect(IROLinear *linear);
-typedef void (*WalkObjFunc)(Object *obj);
-extern void IRO_WalkExcActions(ExceptionAction *action, WalkObjFunc func);
-extern Boolean IRO_FunctionCallMightThrowException(IROLinear *linear);
-extern IROLinear *IRO_NewIntConst(CInt64 val, Type *type);
-extern IROLinear *IRO_NewFloatConst(const Float val, Type *type);
-extern Boolean IRO_IsAddressMultiply(IROLinear *linear);
-extern void IRO_SetupForUserBreakChecking(void);
-extern void IRO_CheckForUserBreak(void);
-
-// TODO is this elsewhere?
-CW_INLINE Boolean IRO_IsUnsignedType(Type *type) {
- return is_unsigned(type);
-}
-
-// 4B4D40
-CW_INLINE CInt64 IRO_MakeULong(UInt32 i) {
- CInt64 val;
- CInt64_SetULong(&val, i);
- return val;
-}
-
-// 4BAAA0
-CW_INLINE CInt64 IRO_MakeLong(SInt32 i) {
- CInt64 val;
- CInt64_SetLong(&val, i);
- return val;
-}
-
-#endif