summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Transforms/Scalar/GVNHoist.cpp4
-rw-r--r--llvm/test/Transforms/GVNHoist/hoist-recursive-geps.ll2
2 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVNHoist.cpp b/llvm/lib/Transforms/Scalar/GVNHoist.cpp
index b09bd36b6b4..023d1255064 100644
--- a/llvm/lib/Transforms/Scalar/GVNHoist.cpp
+++ b/llvm/lib/Transforms/Scalar/GVNHoist.cpp
@@ -891,6 +891,10 @@ private:
if (MaxDepthInBB != -1 && InstructionNb++ >= MaxDepthInBB)
break;
+ // Do not value number terminator instructions.
+ if (!isa<TerminatorInst>(&I1))
+ break;
+
if (auto *Load = dyn_cast<LoadInst>(&I1))
LI.insert(Load, VN);
else if (auto *Store = dyn_cast<StoreInst>(&I1))
diff --git a/llvm/test/Transforms/GVNHoist/hoist-recursive-geps.ll b/llvm/test/Transforms/GVNHoist/hoist-recursive-geps.ll
index 76bc7c26e81..3cc1d993aff 100644
--- a/llvm/test/Transforms/GVNHoist/hoist-recursive-geps.ll
+++ b/llvm/test/Transforms/GVNHoist/hoist-recursive-geps.ll
@@ -8,9 +8,9 @@
; CHECK: load
; CHECK: load
; CHECK: fsub
-; CHECK: fmul
; CHECK: fsub
; CHECK: fmul
+; CHECK: fmul
; CHECK-NOT: fsub
; CHECK-NOT: fmul
OpenPOWER on IntegriCloud