<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hi Sergei,</span><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 4, 2013 at 1:36 AM, Sergei Larin <span dir="ltr"><<a href="mailto:slarin@codeaurora.org" target="_blank">slarin@codeaurora.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Should have changed the subject line...<br>
<br>
---<br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by<br>
The Linux Foundation<br>
<br>
<br>
> -----Original Message-----<br>
> From: <a href="mailto:llvmdev-bounces@cs.uiuc.edu">llvmdev-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvmdev-bounces@cs.uiuc.edu">llvmdev-bounces@cs.uiuc.edu</a>]<br>
> On Behalf Of Sergei Larin<br>
> Sent: Wednesday, July 03, 2013 12:29 PM<br>
> To: 'Tobias Grosser'<br>
> Cc: 'llvmdev'<br>
> Subject: Re: [LLVMdev] [LNT] Question about results reliability in LNT<br>
> infrustructure<br>
><br>
><br>
> Tobias,<br>
><br>
>   I seem to trigger an assert in Polly lib/Analysis/TempScopInfo.cpp<br>
><br>
> void TempScopInfo::buildAffineCondition(Value &V, bool inverted,<br>
>                                         Comparison **Comp) const { ...<br>
>   ICmpInst *ICmp = dyn_cast<ICmpInst>(&V);<br>
>   assert(ICmp && "Only ICmpInst of constant as condition supported!"); ...<br>
><br>
>   The code it chokes on looks like this (see below). The problem is this<br>
OR-ed<br>
> compare result:<br>
><br>
>   %cmp3 = icmp sgt i32 %j.0, 2<br>
>   %cmp5 = icmp eq i32 %j.0, 1<br>
>   %or.cond13 = or i1 %cmp3, %cmp5<br>
> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ==<br>
> Value V<br>
><br>
><br>
> My question - is this a bug or a (missing) feature?</blockquote><div style>I think it is a bug.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
  ...and how it should<br>
be<br>
> handled in theory?<br></blockquote><div style>Such condition should be filtered out by ScopDetection (line 188 of ScopDetection.cpp).</div><div style><br></div><div style>Thanks</div><div style>Hongbin</div><div style>
<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
><br>
> Thanks.<br>
><br>
> Sergei<br>
><br>
> define i32 @main() #0 {<br>
> entry:<br>
>   %j.0.lcssa.reg2mem = alloca i32, align 8<br>
>   br label %entry.split<br>
><br>
> entry.split:                                      ; preds = %entry<br>
>   %call = tail call i32 @foo(i32 0, i32 0) #2<br>
>   %call1 = tail call i32 @foo(i32 %call, i32 %call) #2<br>
>   br label %for.cond2<br>
><br>
> for.cond2:                                        ; preds = %for.inc,<br>
> %entry.split<br>
>   %j.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.inc ]<br>
>   %cmp3 = icmp sgt i32 %j.0, 2<br>
>   %cmp5 = icmp eq i32 %j.0, 1<br>
>   %or.cond13 = or i1 %cmp3, %cmp5<br>
>   store i32 %j.0, i32* %j.0.lcssa.reg2mem, align 8<br>
>   br i1 %or.cond13, label %for.end8, label %for.inc,<br>
> !llvm.listen.preserve.while.opt !0<br>
><br>
> for.inc:                                          ; preds = %for.cond2<br>
>   %inc = add nsw i32 %j.0, 1<br>
>   br label %for.cond2<br>
><br>
> for.end8:                                         ; preds = %for.cond2<br>
>   %j.0.lcssa.reload = load i32* %j.0.lcssa.reg2mem, align 8<br>
>   %cmp10 = icmp eq i32 %j.0.lcssa.reload, 1<br>
>   %add = add nsw i32 %j.0.lcssa.reload, 1<br>
>   %retval.0 = select i1 %cmp10, i32 1, i32 %add<br>
>   ret i32 %retval.0<br>
> }<br>
><br>
><br>
> ---<br>
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,<br>
> hosted by The Linux Foundation<br>
><br>
><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu">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>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">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>
</blockquote></div><br></div></div>