LLVM: include/llvm/CodeGen/GlobalMerge.h Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9#ifndef LLVM_CODEGEN_GLOBALMERGE_H
10#define LLVM_CODEGEN_GLOBALMERGE_H
11
13
14namespace llvm {
15
17
19
20
21
22
24
28
30
32
33
35
36
37
38
40};
41
42
46
47public:
49 : TM(TM), Options(Options) {}
50
52};
53
54}
55
56#endif
This header defines various interfaces for pass management in LLVM.
ModuleAnalysisManager MAM
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
GlobalMergePass(const TargetMachine *TM, GlobalMergeOptions Options)
Definition GlobalMerge.h:48
A Module instance is used to store all the information related to an LLVM module.
A set of analyses that are preserved following a run of a transformation pass.
Primary interface to the complete machine description for the target machine.
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
Definition GlobalMerge.h:18
bool MergeConstAggressive
Whether we should merge constant global variables aggressively without looking at use.
Definition GlobalMerge.h:34
bool IgnoreSingleUse
Definition GlobalMerge.h:27
bool GroupByUse
Definition GlobalMerge.h:26
bool SizeOnly
Whether we should try to optimize for size only.
Definition GlobalMerge.h:39
unsigned MaxOffset
Definition GlobalMerge.h:23
bool MergeExternal
Whether we should merge global variables that have external linkage.
Definition GlobalMerge.h:29
bool MergeConstantGlobals
Whether we should merge constant global variables.
Definition GlobalMerge.h:31
unsigned MinSize
Definition GlobalMerge.h:25
A CRTP mix-in to automatically provide informational APIs needed for passes.