diff options
author | Teddy <ted.sybil@gmail.com> | 2014-05-04 02:37:59 +0800 |
---|---|---|
committer | Teddy <ted.sybil@gmail.com> | 2014-05-04 02:37:59 +0800 |
commit | 433521231784c6ce26900f88c382bee63cdd169b (patch) | |
tree | 99a61049300c73e7d5ab56c65c1776927efc206e /ssa.h | |
parent | 3730b0fa4b526f5acab73f3f5483f6c044178d3d (diff) |
resolve interval building issues in loops
Diffstat (limited to 'ssa.h')
-rw-r--r-- | ssa.h | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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 */ |