aboutsummaryrefslogtreecommitdiff
path: root/ssa.h
diff options
context:
space:
mode:
Diffstat (limited to 'ssa.h')
-rw-r--r--ssa.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/ssa.h b/ssa.h
index 722545d..3699b9d 100644
--- a/ssa.h
+++ b/ssa.h
@@ -34,20 +34,24 @@ struct COpr {
int dep;
int mod;
int reg; /* -1 for spilled, -2 for discarded */
+ int begin, end; /* for reg allocation */
CType_t type;
CInst_t def;
CRange_t range;
COpr_t par; /* union-find */
COpr_t cval;
+ COpr_t spill; /* check this reference if spilled */
};
typedef struct COList COList;
typedef COList *COList_t;
struct COList {
COpr_t opr;
- COList_t next;
+ COList_t next, prev;
};
+void colist_remove(COList_t node);
+
struct CInst {
enum {
BEQZ, /* conditional jump */