OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_47/] [or1ksim/] [cuc/] [bb.c] - Diff between revs 915 and 924

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 915 Rev 924
Line 512... Line 512...
  case 2:
  case 2:
    f->bb[pred].next[0] = f->bb[succ].next[0];
    f->bb[pred].next[0] = f->bb[succ].next[0];
    f->bb[pred].next[1] = f->bb[succ].next[1];
    f->bb[pred].next[1] = f->bb[succ].next[1];
    break;
    break;
  }
  }
 
  if (f->bb[pred].next[0] < 0) f->bb[pred].next[0] = f->bb[pred].next[1];
  if (f->bb[pred].next[0] == f->bb[pred].next[1]) f->bb[pred].next[1] = -1;
  if (f->bb[pred].next[0] == f->bb[pred].next[1]) f->bb[pred].next[1] = -1;
  f->bb[succ].type = BB_DEAD;
  f->bb[succ].type = BB_DEAD;
 
  //printf (" %x %x %x %x %x\n", f->bb[pred].next[0], f->bb[pred].next[1], f->bb[succ].next[0], f->bb[succ].next[1], insn[ninsn - 1].type);
  /* remove branch instruction, if there is only one successor */
  /* remove branch instruction, if there is only one successor */
  if (f->bb[pred].next[1] < 0 && insn[ninsn - 1].type & IT_BRANCH
  if (f->bb[pred].next[1] < 0 && insn[ninsn - 1].type & IT_BRANCH
    && f->bb[pred].next[0] != pred) /* not when end BB, loop */
    && f->bb[pred].next[0] != pred) /* not when end BB, loop */
    change_insn_type (&insn[ninsn - 1], II_NOP);
    change_insn_type (&insn[ninsn - 1], II_NOP);
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.