pike.git / src / peep.c

version» Context lines:

pike.git/src/peep.c:319:   #endif /* PIKE_DEBUG */      #ifndef INS_ENTRY    /* Replace F_ENTRY with F_NOP if we have no entry prologue. */    for (c = (p_instr *) instrbuf.s.str, e = 0; e < length; e++, c++)    if (c->opcode == F_ENTRY) c->opcode = F_NOP;   #endif       labels=xalloc(sizeof(INT32) * 4 * (max_label+2));    jumps = labels + max_label + 2; -  uses = jumps + max_label + 2; -  aliases = uses + max_label + 2; +  aliases = jumps + max_label + 2; +  uses = aliases + max_label + 2;    while(relabel)    {    /* First do the relabel pass. */ -  for(e=0;e<=max_label;e++) -  { -  labels[e]=jumps[e]= aliases[e] = -1; -  uses[e]=0; -  } +  /* Set labels, jumps and aliases to all -1. */ +  memset(labels, 0xff, ((max_label + 2) * 3) * sizeof(INT32)); +  memset(uses, 0x00, (max_label + 2) * sizeof(INT32));       c=(p_instr *)instrbuf.s.str;    length=instrbuf.s.len / sizeof(p_instr);    for(e=0;e<length;e++)    if(c[e].opcode == F_LABEL && c[e].arg>=0) {    INT32 l = c[e].arg;    labels[l]=DO_NOT_WARN((INT32)e);    while (e+1 < length &&    c[e+1].opcode == F_LABEL && c[e+1].arg >= 0) {    /* aliases is used to compact several labels at the same