LLVM 22.0.0git
IRNormalizer.h
Go to the documentation of this file.
1#ifndef LLVM_TRANSFORMS_UTILS_IRNORMALIZER_H
2#define LLVM_TRANSFORMS_UTILS_IRNORMALIZER_H
3
5
6namespace llvm {
7
9 /// Preserves original instruction order.
10 bool PreserveOrder = false;
11
12 /// Renames all instructions (including user-named)
13 bool RenameAll = true;
14
15 /// Folds all regular instructions (including pre-outputs)
16 bool FoldPreOutputs = true;
17
18 /// Sorts and reorders operands in commutative instructions
19 bool ReorderOperands = true;
20};
21
22/// IRNormalizer aims to transform LLVM IR into normal form.
23struct IRNormalizerPass : public PassInfoMixin<IRNormalizerPass> {
24private:
25 const IRNormalizerOptions Options;
26
27public:
29 : Options(Options) {}
30
32};
33
34} // namespace llvm
35
36#endif // LLVM_TRANSFORMS_UTILS_IRNORMALIZER_H
This header defines various interfaces for pass management in LLVM.
#define F(x, y, z)
Definition: MD5.cpp:55
A container for analyses that lazily runs them and caches their results.
Definition: PassManager.h:255
A set of analyses that are preserved following a run of a transformation pass.
Definition: Analysis.h:112
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
bool RenameAll
Renames all instructions (including user-named)
Definition: IRNormalizer.h:13
bool ReorderOperands
Sorts and reorders operands in commutative instructions.
Definition: IRNormalizer.h:19
bool PreserveOrder
Preserves original instruction order.
Definition: IRNormalizer.h:10
bool FoldPreOutputs
Folds all regular instructions (including pre-outputs)
Definition: IRNormalizer.h:16
IRNormalizer aims to transform LLVM IR into normal form.
Definition: IRNormalizer.h:23
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM) const
IRNormalizerPass(IRNormalizerOptions Options=IRNormalizerOptions())
Definition: IRNormalizer.h:28
A CRTP mix-in to automatically provide informational APIs needed for passes.
Definition: PassManager.h:70