aboutsummaryrefslogtreecommitdiff
path: root/ssa.c
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2014-05-04 22:01:38 +0800
committerTeddy <ted.sybil@gmail.com>2014-05-04 22:01:38 +0800
commite5eeded8449f55c64f6508b30fecf71b7160a953 (patch)
treec1c6c32209e1016eb816ddda48d2de58de44e58e /ssa.c
parentbba43394fe4c9b5d8837b797b62ae245d9bac9fd (diff)
...
Diffstat (limited to 'ssa.c')
-rw-r--r--ssa.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ssa.c b/ssa.c
index 16fa5ed..2df04be 100644
--- a/ssa.c
+++ b/ssa.c
@@ -1942,10 +1942,13 @@ const int avail_regs[] = {8, 9, 10, 11, 12, 13, 14, 15, 24, 25};
const int MAX_AVAIL_REGS = sizeof(avail_regs) / sizeof(avail_regs[0]);
void register_alloc() {
+ /* Algorithm from the paper:
+ * Linear Scan Register Allocation
+ * in the Context of SSA Form and Register Constraints */
static int freg[32], f[32];
int dn = 0, i;
- COList_t p;
COpr_t *unhandled;
+ COList_t p;
COList_t active = NEW(COList),
inactive = NEW(COList);
active->next = active->prev = active;