Hazard Detection

zneda@ce.aut.ac.ir zneda@ce.aut.ac.ir
Tue Dec 12 14:37:00 GMT 2006


Hi

I have a question: I compiled a program with  gcc -mips1 ,
Compiler generate this list of instructions:
   ...               ....               ...
  10b71c:    87a20018      lh        v0,24(sp)
  10b720:    00000000     nop
  10b724:    144000b9     bnez    v0,10ba0c
  10b728:    0015ac03      sra      s5,s5,0x10
   ...               ....               ...

but by a small change, some times in variables, (using same compiler
switches) compiler don't insert  nop between load and branch and generates
this sequence of instructions:
   ...               ....               ...
  10b754:    87a20018     lh         v0,24(sp)
  10b758:    144000b9     bnez     v0,10ba40
  10b75c:    0015ac03      sra       s5,s5,0x10
   ...               ....               ...

would you please tell me the reason?

why doesn't compiler detect hazard always?

Thanks in advanced.

Neda Zolfaghari (zneda@aut.ac.ir)




More information about the Gcc-help mailing list