To be more specific, let's consider the following (imcomplete) C code (OK, this is not good C style ;) )<br><br>{<br>  ...<br>  goto label0;<br>   ...<br>  goto label1;<br>  ...<br><br>  label0:<br>  {<br>  // some C code for basic block starting at label0<br>
   ...<br>  }<br>  label1:<br>  {<br>  // some C code for basic block starting at label1<br>  ...<br>  }<br>}<br>  <br><br>In the previous example, the last instruction of basic block0 (starting at label0) is not a jump. There might be a structural hazard between this instruction and the first instruction of basic block1 (starting at label1).<br>
<br>Did you have to deal with this kind of hazards ?<br><br>Thanks.<br><br><br><div class="gmail_quote">On Thu, Feb 10, 2011 at 10:30 AM, Damien Vincent <span dir="ltr"><<a href="mailto:damien.llvm@gmail.com">damien.llvm@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><br>  I am working on a target which has some structural hazards.<br>To detect these hazards, I implemented a sub-class of PostRAHazardRecognizer.<br>
<br>  PostRAHazardRecognizer resets the hazard state on a basic block basis. <br>
  So, how to detect hazards that may occur between the end of a basic block and the beginning of another basic block ?<br><br>  Thanks !<br>  <br>
</blockquote></div><br>