/*-----------------------------------------------------------------*/
bool isSpiltOnStack (symbol *sym)
{
- link *etype;
+ sym_link *etype;
if (!sym)
return FALSE ;
used in the remainder of the block */
if (!blockSpil && (selectS = liveRangesWith(lrcs,notUsedInRemaining,ebp,ic))) {
sym = leastUsedLR (selectS);
- if (!sym->remat) {
- sym->remainSpil = 1;
- blockSpil++;
+ if (sym != ForSym) {
+ if (!sym->remat) {
+ sym->remainSpil = 1;
+ blockSpil++;
+ }
+ return sym;
}
- return sym;
}
}
/* find live ranges with spillocation && not used as pointers */
((nfreeRegsType(result->regType) +
sym->nRegs) >= result->nRegs)
) {
- for (i = 0 ; i < max(sym->nRegs,result->nRegs) ; i++) {
+ for (i = 0 ; i < result->nRegs ; i++) {
if (i < sym->nRegs )
result->regs[i] = sym->regs[i] ;
else
/*-----------------------------------------------------------------*/
static bool isBitwiseOptimizable (iCode *ic)
{
- link *rtype = getSpec(operandType(IC_RIGHT(ic)));
+ sym_link *rtype = getSpec(operandType(IC_RIGHT(ic)));
/* bitwise operations are considered optimizable
under the following conditions (Jean-Louis VERN)