LLVM 19.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
28 bool NeedCanonicalLoop = true;
29 bool HoistCommonInsts = false;
30 bool SinkCommonInsts = false;
31 bool SimplifyCondBranch = true;
32 bool SpeculateBlocks = true;
33
34 AssumptionCache *AC = nullptr;
35
36 // Support 'builder' pattern to set members by name at construction time.
39 return *this;
40 }
43 return *this;
44 }
47 return *this;
48 }
51 return *this;
52 }
55 return *this;
56 }
59 return *this;
60 }
63 return *this;
64 }
66 AC = Cache;
67 return *this;
68 }
71 return *this;
72 }
73
76 return *this;
77 }
78};
79
80} // namespace llvm
81
82#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.
Definition: AddressRanges.h:18
SimplifyCFGOptions & setSimplifyCondBranch(bool B)
SimplifyCFGOptions & sinkCommonInsts(bool B)
SimplifyCFGOptions & convertSwitchRangeToICmp(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)