From 1966e558b40cdeb6dbe57963dc901dd4010faf0c Mon Sep 17 00:00:00 2001 From: James Molloy Date: Wed, 7 Oct 2015 09:03:34 +0000 Subject: [PATCH] Revert "This patch builds on top of D13378 to handle constant condition." This reverts commit r249431. This caused failures in sqlite3: http://lab.llvm.org:8011/builders/clang-native-arm-lnt/builds/14453 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249528 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/ScalarEvolution.cpp | 5 -- .../ScalarEvolution/constant_condition.ll | 51 ------------------- 2 files changed, 56 deletions(-) delete mode 100644 test/Analysis/ScalarEvolution/constant_condition.ll diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index caa0899f6a9..9715d83fd10 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -3904,11 +3904,6 @@ const SCEV *ScalarEvolution::createNodeForSelectOrPHI(Instruction *I, 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(Cond)) - return getSCEV(CI->isOne() ? TrueVal : FalseVal); - // Try to match some simple smax or umax patterns. auto *ICI = dyn_cast(Cond); if (!ICI) diff --git a/test/Analysis/ScalarEvolution/constant_condition.ll b/test/Analysis/ScalarEvolution/constant_condition.ll deleted file mode 100644 index 32ab91b2c85..00000000000 --- a/test/Analysis/ScalarEvolution/constant_condition.ll +++ /dev/null @@ -1,51 +0,0 @@ -; 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 -} -- 2.34.1