summaryrefslogtreecommitdiff
path: root/includes/compiler/InterferenceGraph.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--includes/compiler/InterferenceGraph.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/includes/compiler/InterferenceGraph.h b/includes/compiler/InterferenceGraph.h
index 588450c..8fa44a1 100644
--- a/includes/compiler/InterferenceGraph.h
+++ b/includes/compiler/InterferenceGraph.h
@@ -3,4 +3,39 @@
#include "compiler/common.h"
+enum {
+ fSpilled = 1,
+ fPushed = 2,
+ fCoalesced = 4,
+ fCoalescedInto = 8,
+ fPairHigh = 0x10,
+ fPairLow = 0x20,
+ fIGNode40 = 0x40
+};
+
+#ifdef __MWERKS__
+#pragma options align=mac68k
+#endif
+typedef struct IGNode {
+ struct IGNode *next;
+ Object *spillTemporary;
+ PCode *instr8;
+ int spillCost;
+ short x10;
+ short x12;
+ short x14;
+ UInt16 flags;
+ short arraySize;
+ short array[1];
+} IGNode;
+#ifdef __MWERKS__
+#pragma options align=reset
+#endif
+
+extern IGNode **interferencegraph;
+extern Boolean coalesced_nregisters;
+
+extern int interferes(UInt32 a, UInt32 b);
+extern void buildinterferencegraph(Object *proc);
+
#endif