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>