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.