This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

MIPS/haifa glitch



Tuning scheduling for a new mips variant revealed this haifa glitch.

 	* haifa-sched.c (schedule_insns): Never emit a NOTE_INSN_DELETED
 	before a barrier.

Index: haifa-sched.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/haifa-sched.c,v
retrieving revision 1.155
diff -c -3 -p -r1.155 haifa-sched.c
*** haifa-sched.c	2000/06/13 22:23:49	1.155
--- haifa-sched.c	2000/07/16 00:28:38
*************** schedule_insns (dump_file)
*** 6990,6997 ****
  	  && GET_CODE (insn) != CODE_LABEL
  	  /* Don't emit a NOTE if it would end up between an unconditional
  	     jump and a BARRIER.  */
! 	  && !(GET_CODE (insn) == JUMP_INSN
! 	       && GET_CODE (NEXT_INSN (insn)) == BARRIER)))
      emit_note_after (NOTE_INSN_DELETED, BLOCK_END (n_basic_blocks - 1));
  
    /* Compute INSN_REG_WEIGHT for all blocks.  We must do this before
--- 6990,6996 ----
  	  && GET_CODE (insn) != CODE_LABEL
  	  /* Don't emit a NOTE if it would end up between an unconditional
  	     jump and a BARRIER.  */
! 	  && ! GET_CODE (NEXT_INSN (insn)) == BARRIER))
      emit_note_after (NOTE_INSN_DELETED, BLOCK_END (n_basic_blocks - 1));
  
    /* Compute INSN_REG_WEIGHT for all blocks.  We must do this before



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]