[llvm] r249581 - Revert "Revert "This patch builds on top of D13378 to handle constant condition.""

Mehdi Amini via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 7 11:29:39 PDT 2015


> On Oct 7, 2015, at 11:28 AM, Adrian Prantl <aprantl at apple.com> wrote:
> 
> 
>> On Oct 7, 2015, at 11:14 AM, Mehdi Amini via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>> 
>> Author: mehdi_amini
>> Date: Wed Oct  7 13:14:25 2015
>> New Revision: 249581
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=249581&view=rev
>> Log:
>> Revert "Revert "This patch builds on top of D13378 to handle constant condition.""
>> 
>> This reverts commit r249528 and reapply r249431. The fix for the
>> fallout has been commited in r249575.
> 
> Was this the same problem that caused
> 
> http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_build/6827/consoleFull#1038222285d489585b-5106-414a-ac11-3ff90657619c ?


That looks like it.
I didn’t receive an email for this one, green does not email for this job?

Thanks,

— 
Mehdi


> 
> -- adrian
>> 
>> From: Mehdi Amini <mehdi.amini at apple.com>
>> 
>> Added:
>>   llvm/trunk/test/Analysis/ScalarEvolution/constant_condition.ll
>> Modified:
>>   llvm/trunk/lib/Analysis/ScalarEvolution.cpp
>> 
>> Modified: llvm/trunk/lib/Analysis/ScalarEvolution.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ScalarEvolution.cpp?rev=249581&r1=249580&r2=249581&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Analysis/ScalarEvolution.cpp (original)
>> +++ llvm/trunk/lib/Analysis/ScalarEvolution.cpp Wed Oct  7 13:14:25 2015
>> @@ -3904,6 +3904,11 @@ const SCEV *ScalarEvolution::createNodeF
>>                                                      Value *Cond,
>>                                                      Value *TrueVal,
>>                                                      Value *FalseVal) {
>> +  // Handle "constant" branch or select. This can occur for instance when a
>> +  // loop pass transforms an inner loop and moves on to process the outer loop.
>> +  if (auto *CI = dyn_cast<ConstantInt>(Cond))
>> +    return getSCEV(CI->isOne() ? TrueVal : FalseVal);
>> +
>>  // Try to match some simple smax or umax patterns.
>>  auto *ICI = dyn_cast<ICmpInst>(Cond);
>>  if (!ICI)
>> 
>> Added: llvm/trunk/test/Analysis/ScalarEvolution/constant_condition.ll
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/ScalarEvolution/constant_condition.ll?rev=249581&view=auto
>> ==============================================================================
>> --- llvm/trunk/test/Analysis/ScalarEvolution/constant_condition.ll (added)
>> +++ llvm/trunk/test/Analysis/ScalarEvolution/constant_condition.ll Wed Oct  7 13:14:25 2015
>> @@ -0,0 +1,51 @@
>> +; RUN: opt -analyze -scalar-evolution < %s | FileCheck %s
>> +
>> +define i32 @branch_true(i32 %x, i32 %y) {
>> +; CHECK-LABEL: Classifying expressions for: @branch_true
>> + entry:
>> +  br i1 true, label %add, label %merge
>> +
>> + add:
>> +  %sum = add i32 %x, %y
>> +  br label %merge
>> +
>> + merge:
>> +  %v = phi i32 [ %sum, %add ], [ %x, %entry ]
>> +; CHECK:  %v = phi i32 [ %sum, %add ], [ %x, %entry ]
>> +; CHECK-NEXT:  -->  (%x + %y) U: full-set S: full-set
>> +  ret i32 %v
>> +}
>> +
>> +define i32 @branch_false(i32 %x, i32 %y) {
>> +; CHECK-LABEL: Classifying expressions for: @branch_false
>> + entry:
>> +  br i1 false, label %add, label %merge
>> +
>> + add:
>> +  %sum = add i32 %x, %y
>> +  br label %merge
>> +
>> + merge:
>> +  %v = phi i32 [ %sum, %add ], [ %x, %entry ]
>> +; CHECK:  %v = phi i32 [ %sum, %add ], [ %x, %entry ]
>> +; CHECK-NEXT:  -->  %x U: full-set S: full-set
>> +  ret i32 %v
>> +}
>> +
>> +define i32 @select_true(i32 %x, i32 %y) {
>> +; CHECK-LABEL: Classifying expressions for: @select_true
>> + entry:
>> + %v = select i1 true, i32 %x, i32 %y
>> +; CHECK:  %v = select i1 true, i32 %x, i32 %y
>> +; CHECK-NEXT:  -->  %x U: full-set S: full-set
>> +  ret i32 %v
>> +}
>> +
>> +define i32 @select_false(i32 %x, i32 %y) {
>> +; CHECK-LABEL: Classifying expressions for: @select_false
>> + entry:
>> + %v = select i1 false, i32 %x, i32 %y
>> +; CHECK:  %v = select i1 false, i32 %x, i32 %y
>> +; CHECK-NEXT:  -->  %y U: full-set S: full-set
>> +  ret i32 %v
>> +}
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> 



More information about the llvm-commits mailing list