Displaying 3 results from an estimated 3 matches for "lastj".
Did you mean:
last
2009 Oct 26
1
[LLVMdev] RegAllocSimple doesn't work
...EGATE) {
junk = addstr(NCCL, pat, j, MAXPAT);
*i = *i + 1;
} else
junk = addstr(CCL, pat, j, MAXPAT);
jstart = *j;
junk = addstr(0, pat, j, MAXPAT);
dodash(CCLEND, arg, i, pat, j, MAXPAT);
pat[jstart] = *j - jstart - 1;
return (arg[*i] == CCLEND);
}
void
stclose(pat, j, lastj)
char *pat;
int *j;
int lastj;
{
int jt;
int jp;
bool junk;
for (jp = *j - 1; jp >= lastj ; jp--)
{
jt = jp + CLOSIZE;
junk = addstr(pat[jp], pat, &jt, MAXPAT);
}
*j = *j + CLOSIZE;
pat[lastj] = CLOSURE;
}
bool in_set_2(c)
char c;
{
return (c == BOL ||...
2009 Oct 22
0
[LLVMdev] request for help writing a register allocator
Hi Susan,
> But this doesn't seem to be happening; the stores to memory are there but
> the loads are not.
>
> Any ideas what's going wrong?
Are you using VirtRegMap::addSpillPoint and VirtRegMap::addRestorePoint ? If
not you may need to add calls to them to let the rewriter know where to
insert the loads/stores.
> If not, any advice on how to generate the loads
2009 Oct 22
4
[LLVMdev] request for help writing a register allocator
I found the problem! My generated code is spilling correctly but is not
reloading at all. For example, if the original code has the equivalent of
this (where %1024 is a virtual reg):
%1024 = xxx
...
yyy = %1024
and I find no physical register for %1024, then I assign it to physical
register %edi and to a stackslot. That creates code like this:
%edi = xxx
store from %edi to the