<div dir="ltr"><div><div>Oops...sorry about that. I think just changing to integers won't do what you want either because 'add i8 %x, undef --> undef'?<br><br></div>So I thought "let me change to some op that won't propagate undef' and (mistakenly - some day I'll get this right) changed to 'xor'.<br><br></div>And that crashed! Should I file a bug?<br><br>; RUN: opt -newgvn %s -S -o - | FileCheck %s<br><br>define hidden void @foo() {<br>top:<br>  %.promoted = load i8, i8* undef, align 8<br>  br label %if<br><br>;; This is really a multi-valued phi, because the phi is defined by an expression of the phi.<br>;; This means that we can't propagate the value over the backedge, because we'll just cycle<br>;; through every value.<br><br>if:                                               ; preds = %if, %top<br>  %0 = phi i8 [ %1, %if ], [ %.promoted, %top ]<br>  %1 = xor i8 %0, undef<br>  br i1 false, label %L50, label %if<br><br>L50:                                              ; preds = %if<br>  %.lcssa = phi i8 [ %1, %if ]<br>  store i8 %.lcssa, i8* undef, align 8<br>  ret void<br>}<br><br>$ ./opt -newgvn test/Transforms/NewGVN/pr32607.ll -S<br>Assertion failed: (ProcessedCount[V] < 100 && "Seem to have processed the same Value a lot"), function updateProcessedCount, file /Users/spatel/myllvm/llvm/lib/Transforms/Scalar/NewGVN.cpp, line 3000.<br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 12, 2018 at 11:01 AM, Davide Italiano <span dir="ltr"><<a href="mailto:dccitaliano@gmail.com" target="_blank">dccitaliano@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+1<br>
<div class="HOEnZb"><div class="h5"><br>
On Thu, Apr 12, 2018 at 9:58 AM, Daniel Berlin <<a href="mailto:dberlin@dberlin.org">dberlin@dberlin.org</a>> wrote:<br>
> So:<br>
> I believe the newgvn test failure only occurred because of undef (because of<br>
> special handling of undef in phi's).<br>
> I think we'd have to move it to integer undef to still test the same thing.<br>
><br>
><br>
> On Thu, Mar 8, 2018 at 6:57 AM, Sanjay Patel via llvm-commits<br>
> <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
>><br>
>> Author: spatel<br>
>> Date: Thu Mar  8 06:57:08 2018<br>
>> New Revision: 327004<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=327004&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=327004&view=rev</a><br>
>> Log:<br>
>> [InstCombine, NewGVN] remove FP undef from tests<br>
>><br>
>> I'm trying to preserve the intent of these tests by using<br>
>> non-undef operands; if we fix FP undef folding these tests<br>
>> will not pass.<br>
>><br>
>> Modified:<br>
>>     llvm/trunk/test/Transforms/<wbr>InstCombine/select-crash.ll<br>
>>     llvm/trunk/test/Transforms/<wbr>NewGVN/pr32607.ll<br>
>><br>
>> Modified: llvm/trunk/test/Transforms/<wbr>InstCombine/select-crash.ll<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/select-crash.ll?rev=327004&r1=327003&r2=327004&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>Transforms/InstCombine/select-<wbr>crash.ll?rev=327004&r1=327003&<wbr>r2=327004&view=diff</a><br>
>><br>
>> ==============================<wbr>==============================<wbr>==================<br>
>> --- llvm/trunk/test/Transforms/<wbr>InstCombine/select-crash.ll (original)<br>
>> +++ llvm/trunk/test/Transforms/<wbr>InstCombine/select-crash.ll Thu Mar  8<br>
>> 06:57:08 2018<br>
>> @@ -15,7 +15,7 @@ entry:<br>
>>    %cmp86 = fcmp ogt double %highlights, 0.000000e+00<br>
>>    %cond90 = select i1 %cmp86, double %sub24, double %add26<br>
>>    %mul91 = fmul double %highlights, %cond90<br>
>> -  %add94 = fadd double undef, %mul91<br>
>> +  %add94 = fadd double %mul91, %mul91<br>
>>    ret double %add94<br>
>>  }<br>
>><br>
>><br>
>> Modified: llvm/trunk/test/Transforms/<wbr>NewGVN/pr32607.ll<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/NewGVN/pr32607.ll?rev=327004&r1=327003&r2=327004&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>Transforms/NewGVN/pr32607.ll?<wbr>rev=327004&r1=327003&r2=<wbr>327004&view=diff</a><br>
>><br>
>> ==============================<wbr>==============================<wbr>==================<br>
>> --- llvm/trunk/test/Transforms/<wbr>NewGVN/pr32607.ll (original)<br>
>> +++ llvm/trunk/test/Transforms/<wbr>NewGVN/pr32607.ll Thu Mar  8 06:57:08 2018<br>
>> @@ -6,7 +6,7 @@ define hidden void @foo() {<br>
>>  ; CHECK-NEXT:    br label [[IF:%.*]]<br>
>>  ; CHECK:       if:<br>
>>  ; CHECK-NEXT:    [[TMP0:%.*]] = phi double [ [[TMP1:%.*]], [[IF]] ], [<br>
>> undef, [[TOP:%.*]] ]<br>
>> -; CHECK-NEXT:    [[TMP1]] = fadd double [[TMP0]], undef<br>
>> +; CHECK-NEXT:    [[TMP1]] = fadd double [[TMP0]], 1.000000e+00<br>
>>  ; CHECK-NEXT:    br i1 false, label [[L50:%.*]], label [[IF]]<br>
>>  ; CHECK:       L50:<br>
>>  ; CHECK-NEXT:    store i8 undef, i8* null<br>
>> @@ -22,7 +22,7 @@ top:<br>
>><br>
>>  if:                                               ; preds = %if, %top<br>
>>    %0 = phi double [ %1, %if ], [ %.promoted, %top ]<br>
>> -  %1 = fadd double %0, undef<br>
>> +  %1 = fadd double %0, 1.0<br>
>>    br i1 false, label %L50, label %if<br>
>><br>
>>  L50:                                              ; preds = %if<br>
>><br>
>><br>
>> ______________________________<wbr>_________________<br>
>> llvm-commits mailing list<br>
>> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
><br>
><br>
</div></div></blockquote></div><br></div>