<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 25, 2015 at 6:26 AM, Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> Maybe.<br>
> My view is the ideal is either no-unreachable code, or unreachable blocks<br>
> only contain terminators.<br>
<br>
</span>I am definitely happy with both. What worries me is introducing a<br>
special dominance rule for unreachable blocks.<br>
<span class=""><br>
>> I don't think that rejecting<br>
>><br>
>>   %a = getelementptr inbounds i8* %a, i64 1<br>
>><br>
>> but accepting<br>
>><br>
>>   %a = getelementptr inbounds i8* %b, i64 1<br>
>>   %b = getelementptr inbounds i8* %a, i64 1<br>
>><br>
><br>
> Does the verifier accept the latter right now?<br>
<br>
</span>Yes. %a dominates %b and %b dominates %a, so it is valid.<br>
<span class=""><br></span></blockquote><div><br></div><div>So i'm confused.</div><div><br></div><div>How does %b dominate %a?<br><br></div><div>The use of %b in  %a is use-before-def</div><div><br></div><div>Even if the block dominates itself, definitions would still have to locally dominate (IE appear before) the use.</div><div> </div></div></div></div>