if (inot->_ops[0] != value ||
inot->opcode < INSTR_NOT_F ||
inot->opcode > INSTR_NOT_FNC ||
- inot->opcode == INSTR_NOT_V) /* can't do this one */
+ inot->opcode == INSTR_NOT_V || /* can't do these */
+ inot->opcode == INSTR_NOT_S)
{
break;
}
irfun = global->constval.vfunc;
def = code_functions + irfun->code_function_def;
- if (opts.g || (irfun->flags & IR_FLAG_MASK_NO_OVERLAP))
+ if (opts.g || !OPTS_OPTIMIZATION(OPTIM_OVERLAP_LOCALS) || (irfun->flags & IR_FLAG_MASK_NO_OVERLAP))
firstlocal = def->firstlocal = vec_size(code_globals);
- else
+ else {
firstlocal = def->firstlocal = ir->first_common_local;
+ ++opts_optimizationcount[OPTIM_OVERLAP_LOCALS];
+ }
for (i = vec_size(code_globals); i < firstlocal + irfun->allocated_locals; ++i)
vec_push(code_globals, 0);