LLVM 22.0.0git
SimplifyCFGOptions.h
Go to the documentation of this file.
1//===- SimplifyCFGOptions.h - Control structure for SimplifyCFG -*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// A set of parameters used to control the transforms in the SimplifyCFG pass.
10// Options may change depending on the position in the optimization pipeline.
11// For example, canonical form that includes switches and branches may later be
12// replaced by lookup tables and selects.
13//
14//===----------------------------------------------------------------------===//
15
16#ifndef LLVM_TRANSFORMS_UTILS_SIMPLIFYCFGOPTIONS_H
17#define LLVM_TRANSFORMS_UTILS_SIMPLIFYCFGOPTIONS_H
18
19namespace llvm {
20
21class AssumptionCache;
22
29 bool NeedCanonicalLoop = true;
30 bool HoistCommonInsts = false;
32 bool SinkCommonInsts = false;
33 bool SimplifyCondBranch = true;
34 bool SpeculateBlocks = true;
36
37 AssumptionCache *AC = nullptr;
38
39 // Support 'builder' pattern to set members by name at construction time.
42 return *this;
43 }
62 return *this;
63 }
66 return *this;
67 }
74 return *this;
75 }
77 AC = Cache;
78 return *this;
79 }
82 return *this;
83 }
84
87 return *this;
88 }
93};
94
95} // namespace llvm
96
97#endif // LLVM_TRANSFORMS_UTILS_SIMPLIFYCFGOPTIONS_H
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
#define I(x, y, z)
Definition MD5.cpp:58
A cache of @llvm.assume calls within a function.
This is an optimization pass for GlobalISel generic memory operations.
SimplifyCFGOptions & setSimplifyCondBranch(bool B)
SimplifyCFGOptions & sinkCommonInsts(bool B)
SimplifyCFGOptions & convertSwitchRangeToICmp(bool B)
SimplifyCFGOptions & convertSwitchToArithmetic(bool B)
SimplifyCFGOptions & speculateUnpredictables(bool B)
SimplifyCFGOptions & convertSwitchToLookupTable(bool B)
SimplifyCFGOptions & hoistCommonInsts(bool B)
SimplifyCFGOptions & speculateBlocks(bool B)
SimplifyCFGOptions & bonusInstThreshold(int I)
SimplifyCFGOptions & setAssumptionCache(AssumptionCache *Cache)
SimplifyCFGOptions & needCanonicalLoops(bool B)
SimplifyCFGOptions & forwardSwitchCondToPhi(bool B)
SimplifyCFGOptions & hoistLoadsStoresWithCondFaulting(bool B)