diff options
author | Ash Wolf <ninji@wuffs.org> | 2023-01-26 11:30:47 +0000 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2023-01-26 11:30:47 +0000 |
commit | 094b96ca1df4a035b5f93c351f773306c0241f3f (patch) | |
tree | 95ce05e3ebe816c7ee7996206bb37ea17d8ca33c /includes/compiler/IroFlowgraph.h | |
parent | fc0c4c0df7b583b55a08317cf1ef6a71d27c0440 (diff) | |
download | MWCC-main.tar.gz MWCC-main.zip |
move lots of source files around to match their actual placement in the original treemain
Diffstat (limited to 'includes/compiler/IroFlowgraph.h')
-rw-r--r-- | includes/compiler/IroFlowgraph.h | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/includes/compiler/IroFlowgraph.h b/includes/compiler/IroFlowgraph.h deleted file mode 100644 index 90e696c..0000000 --- a/includes/compiler/IroFlowgraph.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef COMPILER_IROFLOWGRAPH_H -#define COMPILER_IROFLOWGRAPH_H - -#include "compiler/IrOptimizer.h" -#include "compiler/BitVector.h" -#include "compiler/CError.h" -#include "compiler/CompilerTools.h" - -#ifdef __MWERKS__ -#pragma options align=mac68k -#endif - -struct IRONode { - UInt16 index; - UInt16 numsucc; - UInt16 *succ; - UInt16 numpred; - UInt16 *pred; - IROLinear *first; - IROLinear *last; - BitVector *x16; // In - BitVector *x1A; // Out - BitVector *x1E; // Gen - BitVector *x22; // Kill - UInt32 x26; - BitVector *x2A; // AA - BitVector *dom; - IRONode *nextnode; - Boolean x36; - Boolean x37; - Boolean mustreach; - Boolean x39; - UInt16 loopdepth; - Boolean x3C; - struct ObjectSet *addressed; - Boolean mustreach1; -}; - -typedef struct IRONodes { - UInt16 *indices; - UInt16 num; - UInt16 base; -} IRONodes; - -#ifdef __MWERKS__ -#pragma options align=reset -#endif - -extern UInt16 IRO_NumNodes; -extern IRONode *IRO_FirstNode; -extern IRONode *IRO_LastNode; -extern IRONode *IRO_EndNode; -extern IRONode **IRO_NodeTable; -extern BitVector *IRO_VarKills; -extern BitVector *IRO_Avail; -extern BitVector *IRO_FuncKills; -extern BitVector *IRO_ExprKills; - -extern void IRO_ComputeSuccPred(void); -extern void IRO_ComputeDom(void); -extern void IRO_BuildFlowgraph(IROLinear *linear); -extern IRONode *IRO_NewFlowGraphNode(void); -extern IRONode *IRO_MergeFlowGraphNodes(IRONode *a, IRONode *b); - -CW_INLINE void IROFlowgraph_sub_4C2140(IRONodes *nodes) { - nodes->indices = oalloc(sizeof(UInt16) * IRO_NumNodes); - nodes->num = 0; - nodes->base = 0; -} - -CW_INLINE void IROFlowgraph_sub_4C20E0(IRONodes *nodes) { -} - -CW_INLINE UInt16 IROFlowgraph_sub_4C2040(IRONodes *nodes) { - return nodes->num; -} - -CW_INLINE UInt16 IROFlowgraph_sub_4C2100(IRONodes *nodes) { - UInt16 result = -1; - if (nodes->num) { - result = nodes->indices[nodes->base]; - nodes->base = (nodes->base + 1) % IRO_NumNodes; - nodes->num--; - } - return result; -} - -CW_INLINE void IROFlowgraph_sub_4C3880(IRONodes *nodes, UInt16 index) { - if (nodes->num < IRO_NumNodes) { - nodes->indices[(nodes->base + nodes->num) % IRO_NumNodes] = index; - nodes->num++; - } else { - CError_FATAL(93); - } -} - -#endif |