aboutsummaryrefslogtreecommitdiff
path: root/ssa.c
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2014-05-04 11:41:39 +0800
committerTeddy <ted.sybil@gmail.com>2014-05-04 11:41:39 +0800
commit5aba86743d63a9d7000ce4e410ff7c61bcb0547f (patch)
treed96984551fb4c628e539b0e421ede0ad88080a6a /ssa.c
parent5f8c8cb8293ecdd76a9fda30a9a7fdf7b89232cd (diff)
argument opt has been postponed
Diffstat (limited to 'ssa.c')
-rw-r--r--ssa.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/ssa.c b/ssa.c
index 4b6fe60..6fcc653 100644
--- a/ssa.c
+++ b/ssa.c
@@ -2003,6 +2003,12 @@ void register_alloc() {
for (p = raw_defs; p; p = p->next)
{
COpr_t opr = p->opr;
+ /*
+ if (opr->info.var->loc < 0)
+ {
+ opr->reg = 3 - opr->info.var->loc;
+ continue;
+ } */ /* arguments */
opr->reg = -2;
if (opr->par != opr) continue;
if (cinterv_repr(opr)->range)
@@ -2283,16 +2289,16 @@ void ssa_func(CType_t func) {
CPSet_t vs = cpset_create(), avs = cpset_create();
CVList_t vars = NULL;
COList_t all_oprs = NULL;
- CVar_t pr;
+ /* CVar_t pr; */
int i;
cfg_clear();
dtree_clear();
ssa_comp(func->rec.func.body, entry, NULL);
+ /*
for (i = 0, pr = func->rec.func.params;
i < 4 && pr;
i++, pr = pr->next)
- {
- }
+ pr->loc = -(i + 1); */ /* mark arguments */
for (p = entry; p; p = p->next)
{