diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/contrib/llvm-project/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp b/contrib/llvm-project/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp index ee17da1875e5..b8972751066d 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp +++ b/contrib/llvm-project/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp @@ -59,6 +59,11 @@ static cl::opt<bool> UserKeepLoops(      "keep-loops", cl::Hidden, cl::init(true),      cl::desc("Preserve canonical loop structure (default = true)")); +static cl::opt<bool> UserSwitchRangeToICmp( +    "switch-range-to-icmp", cl::Hidden, cl::init(false), +    cl::desc( +        "Convert switches into an integer range comparison (default = false)")); +  static cl::opt<bool> UserSwitchToLookup(      "switch-to-lookup", cl::Hidden, cl::init(false),      cl::desc("Convert switches to lookup tables (default = false)")); @@ -311,6 +316,8 @@ static void applyCommandLineOverridesToOptions(SimplifyCFGOptions &Options) {      Options.BonusInstThreshold = UserBonusInstThreshold;    if (UserForwardSwitchCond.getNumOccurrences())      Options.ForwardSwitchCondToPhi = UserForwardSwitchCond; +  if (UserSwitchRangeToICmp.getNumOccurrences()) +    Options.ConvertSwitchRangeToICmp = UserSwitchRangeToICmp;    if (UserSwitchToLookup.getNumOccurrences())      Options.ConvertSwitchToLookupTable = UserSwitchToLookup;    if (UserKeepLoops.getNumOccurrences()) @@ -337,6 +344,8 @@ void SimplifyCFGPass::printPipeline(    OS << "<";    OS << "bonus-inst-threshold=" << Options.BonusInstThreshold << ";";    OS << (Options.ForwardSwitchCondToPhi ? "" : "no-") << "forward-switch-cond;"; +  OS << (Options.ConvertSwitchRangeToICmp ? "" : "no-") +     << "switch-range-to-icmp;";    OS << (Options.ConvertSwitchToLookupTable ? "" : "no-")       << "switch-to-lookup;";    OS << (Options.NeedCanonicalLoop ? "" : "no-") << "keep-loops;"; | 
