Displaying 3 results from an estimated 3 matches for "maxset".
2009 Oct 26
1
[LLVMdev] RegAllocSimple doesn't work
...ne DASH '-'
# define TAB 9
# define NEWLINE 10
# define CLOSIZE 1
typedef char character;
typedef char string[MAXSTR];
bool
getline(s, maxsize)
char *s;
int maxsize;
{
char *result;
result = fgets(s, maxsize, stdin);
return (result != NULL);
}
int
addstr(c, outset, j, maxset)
char c;
char *outset;
int *j;
int maxset;
{
bool result;
if (*j >= maxset)
result = false;
else {
outset[*j] = c;
*j = *j + 1;
result = true;
}
return result;
}
char
esc(s, i)
char *s;
int *i;
{
char result;
if (s[*i] != ESCAPE)
result = s[*i];
else
if (s...
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