URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 936 |
Rev 939 |
Line 970... |
Line 970... |
for (i = 0; i < f->bb[b].ninsn; i++)
|
for (i = 0; i < f->bb[b].ninsn; i++)
|
if (f->bb[b].insn[i].type & IT_UNUSED) change_insn_type (&f->bb[b].insn[i], II_NOP);
|
if (f->bb[b].insn[i].type & IT_UNUSED) change_insn_type (&f->bb[b].insn[i], II_NOP);
|
|
|
/* SSAs with final register value are marked as outputs */
|
/* SSAs with final register value are marked as outputs */
|
assert (f->bb[f->num_bb - 1].type & BB_END);
|
assert (f->bb[f->num_bb - 1].type & BB_END);
|
for (i = 0; i < MAX_REGS; i++) if (!call_saved[i]) {
|
for (i = 0; i < MAX_REGS; i++) if (!caller_saved[i]) {
|
|
int t = f->bb[f->num_bb - 1].last_used_reg[i];
|
|
/* Mark them volatile, so optimizer does not remove them */
|
|
if (t >= 0) f->bb[REF_BB(t)].insn[REF_I(t)].type |= IT_OUTPUT;
|
|
}
|
|
{
|
int t = f->bb[f->num_bb - 1].last_used_reg[i];
|
int t = f->bb[f->num_bb - 1].last_used_reg[i];
|
/* Mark them volatile, so optimizer does not remove them */
|
/* Mark them volatile, so optimizer does not remove them */
|
if (t >= 0) f->bb[REF_BB(t)].insn[REF_I(t)].type |= IT_OUTPUT;
|
if (t >= 0) f->bb[REF_BB(t)].insn[REF_I(t)].type |= IT_OUTPUT;
|
}
|
}
|
}
|
}
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.