diff options
author | Max Kazantsev <max.kazantsev@azul.com> | 2018-11-23 09:14:53 +0000 |
---|---|---|
committer | Max Kazantsev <max.kazantsev@azul.com> | 2018-11-23 09:14:53 +0000 |
commit | e1c2dc27d381f8a0bfb8b567dc80b9db55eeaf8d (patch) | |
tree | 2c051f1896066092b1a88c4000e0b847b8b026d6 | |
parent | 5f8fc76b4e53b5f05bd4db6a6e1ab06da34e5e0c (diff) | |
download | bcm5719-llvm-e1c2dc27d381f8a0bfb8b567dc80b9db55eeaf8d.tar.gz bcm5719-llvm-e1c2dc27d381f8a0bfb8b567dc80b9db55eeaf8d.zip |
Disable LoopSimplifyCFG terminator folding by default
llvm-svn: 347486
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp | 6 | ||||
-rw-r--r-- | llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll | 6 | ||||
-rw-r--r-- | llvm/test/Transforms/LoopSimplifyCFG/lcssa.ll | 6 |
3 files changed, 12 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp index 7edba7c60c5..5ca412f1a20 100644 --- a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp +++ b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp @@ -41,6 +41,9 @@ using namespace llvm; #define DEBUG_TYPE "loop-simplifycfg" +static cl::opt<bool> EnableTermFolding("enable-loop-simplifycfg-term-folding", + cl::init(false)); + STATISTIC(NumTerminatorsFolded, "Number of terminators folded to unconditional branches"); @@ -352,6 +355,9 @@ public: /// Turn branches and switches with known constant conditions into unconditional /// branches. static bool constantFoldTerminators(Loop &L, DominatorTree &DT, LoopInfo &LI) { + if (!EnableTermFolding) + return false; + // To keep things simple, only process loops with single latch. We // canonicalize most loops to this form. We can support multi-latch if needed. if (!L.getLoopLatch()) diff --git a/llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll b/llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll index 90630fd0419..7998aa360dd 100644 --- a/llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll +++ b/llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll @@ -1,8 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; REQUIRES: asserts -; RUN: opt -S -loop-simplifycfg -debug-only=loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa 2>&1 < %s | FileCheck %s -; RUN: opt -S -passes='require<domtree>,loop(simplify-cfg)' -debug-only=loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa 2>&1 < %s | FileCheck %s -; RUN: opt -S -loop-simplifycfg -enable-mssa-loop-dependency=true -verify-memoryssa -debug-only=loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa 2>&1 < %s | FileCheck %s +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -loop-simplifycfg -debug-only=loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa 2>&1 < %s | FileCheck %s +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -passes='require<domtree>,loop(simplify-cfg)' -debug-only=loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa 2>&1 < %s | FileCheck %s +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -loop-simplifycfg -enable-mssa-loop-dependency=true -verify-memoryssa -debug-only=loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa 2>&1 < %s | FileCheck %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128-ni:1" diff --git a/llvm/test/Transforms/LoopSimplifyCFG/lcssa.ll b/llvm/test/Transforms/LoopSimplifyCFG/lcssa.ll index 6f602156e80..82920f15304 100644 --- a/llvm/test/Transforms/LoopSimplifyCFG/lcssa.ll +++ b/llvm/test/Transforms/LoopSimplifyCFG/lcssa.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -S -loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s -; RUN: opt -S -passes='require<domtree>,loop(simplify-cfg)' -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s -; RUN: opt -S -loop-simplifycfg -enable-mssa-loop-dependency=true -verify-memoryssa -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -loop-simplifycfg -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -passes='require<domtree>,loop(simplify-cfg)' -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s +; RUN: opt -S -enable-loop-simplifycfg-term-folding=true -loop-simplifycfg -enable-mssa-loop-dependency=true -verify-memoryssa -verify-loop-info -verify-dom-info -verify-loop-lcssa < %s | FileCheck %s target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" |