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]

Re: MIPS/haifa glitch


Jason

Jason Eckhardt wrote:
> 
> 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

I think you are missing a pair of parenthesis (i.e. shouldn't it be)

> !         && ! (GET_CODE (NEXT_INSN (insn)) == BARRIER)))

Graham

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