<span style=""></span>Sorry, %3 instead of %4.<br><br><div class="gmail_quote">2011/9/14 Rafael Baldiati Parizi <span dir="ltr"><<a href="mailto:parizi.computacao@gmail.com">parizi.computacao@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div>Hello,<br>I created a new block for execution to continue, but I got the case in which a statement defined in a block is used in another, not dominate all uses.<br>
For example:<br></div><div><br></div><div>entry: <br>
</div>   %n_addr = alloca i32, align 4<br>   %retval = alloca i32<br>   %"alloca point" = bitcast i32 0 to i32 <br>  store i32 %n, i32* %n_addr<br>   %0 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([20 x i8]* @.str, i32 0, i32 0)) nounwind<br>

   %1 = load i32* %n_addr, align 4<br>   %2 = and i32 %1, 1<br><div>  <strong>   %3</strong> = icmp eq i32 %2, 0</div><div>   .....</div><div>   br label %new_block</div><div><br></div><div>new_block:</div><div> %4 =  call i32 (i8*, ...)* @printf(i8* noalias getelementptr inbounds ([10 x i8]* @.str1, i32 0, i32 0), i32 <b style="background-color: rgb(255, 255, 102);">%3</b>) nounwind</div>

<div> ...</div><div><br></div><div><br></div><div>How to solve this?</div><div><div></div><div class="h5"><br><div class="gmail_quote">2011/9/5 Rafael Baldiati Parizi <span dir="ltr"><<a href="mailto:parizi.computacao@gmail.com" target="_blank">parizi.computacao@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ok!  I do understand.<br>Thanks by help!<div><div></div><div><br><br><div class="gmail_quote">2011/9/5 Justin Holewinski <span dir="ltr"><<a href="mailto:justin.holewinski@gmail.com" target="_blank">justin.holewinski@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div>On Mon, Sep 5, 2011 at 8:37 PM, Rafael Baldiati Parizi <span dir="ltr"><<a href="mailto:parizi.computacao@gmail.com" target="_blank">parizi.computacao@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Yes, that's how I'm doing now ... create a new block where the execution
 flow will continue after the shift, following the basics of basic 
blocks. But, I want to find a way to reduce the number of block of my code.</blockquote><div><br></div></div><div>Why do you want to reduce the number of LLVM IR blocks?  Just because LLVM IR does not have fall-through branches does not mean that the generated code will not have them.  As mentioned before, this is just a level of abstraction used in the LLVM IR.</div>


<div><div></div><div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div><br><br><div class="gmail_quote">2011/9/5 Nick Lewycky <span dir="ltr"><<a href="mailto:nicholas@mxc.ca" target="_blank">nicholas@mxc.ca</a>></span><br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Rafael Baldiati Parizi wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I have two values and I want see if them are equals. Then, I would a<br>
instruction like<br>
if Value1 != Value2, error<br>
without create a new block, continuing the execution in the same block,<br>
forcing the LLI to execute this.<br>
</blockquote>
<br></div>
You can not. The definition of a "basic block" is a sequence of instructions with a single entry and a single exit. You can not insert multiple exits within a basic block.<br>
<br>
I realize that this restriction feels arbitrary, but there's a vast amount of research and practical experience in compiler design built around the notion of basic blocks making up a control flow graph.<br>
<br>
Nick<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
2011/9/5 Eli Friedman <<a href="mailto:eli.friedman@gmail.com" target="_blank">eli.friedman@gmail.com</a><br></div>
<mailto:<a href="mailto:eli.friedman@gmail.com" target="_blank">eli.friedman@gmail.com</a><u></u>>><div><br>
<br>
    On Mon, Sep 5, 2011 at 4:47 PM, Rafael Baldiati Parizi<br></div>
    <<a href="mailto:parizi.computacao@gmail.com" target="_blank">parizi.computacao@gmail.com</a> <mailto:<a href="mailto:parizi.computacao@gmail.com" target="_blank">parizi.computacao@<u></u>gmail.com</a>>><div>




<br>
    wrote:<br>
     > Hello,<br>
     > I would know how can I make a branch in llvm ir without a label of<br>
     > destination?<br>
     > For example:<br>
     > br i1 %1, label %bb,  NO LABEL HERE<br>
<br>
    What are you trying to do?<br>
<br>
    -Eli<br>
<br>
<br>
<br>
<br>
--<br></div>
*/Rafael Parizi/*<br>
<br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvmdev</a><br>
</blockquote>
<br>
</blockquote></div><br><br clear="all"><br></div></div>-- <br><font color="#888888"><font size="2"><b><i>Rafael Parizi</i></b></font><br><br><br><br>
</font><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div></div></div><br><br clear="all"><div><br></div>-- <br><br><div>Thanks,</div><div><br></div><font color="#888888"><div>Justin Holewinski</div><br>
</font></blockquote></div><br><br clear="all"><br></div></div><font color="#888888">-- <br><font size="2"><b><i>Rafael Parizi</i></b></font><br><br><br><br>
</font></blockquote></div><br><br clear="all"><div><br></div></div></div><font color="#888888">-- <br><font size="2"><b><i>Rafael Parizi</i></b></font><br><br><br><br>
</font></blockquote></div><br><br clear="all"><div><br></div>-- <br><font size="2"><b><i>Rafael Parizi</i></b></font><br><br><br><br>