LLVM: include/llvm/CodeGen/GlobalMergeFunctions.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25#ifndef LLVM_CODEGEN_GLOBALMERGEFUNCTIONS_H

26#define LLVM_CODEGEN_GLOBALMERGEFUNCTIONS_H

27

32

38

39namespace llvm {

40

41

42

44

46

47

48

49

52

53 std::unique_ptr LocalFunctionMap;

54

56

57public:

58

59

60

62

64

66

68

69

71

72

74

75

77};

78

79

87

88}

89#endif

HashFunctionMode

Definition GlobalMergeFunctions.h:33

@ Local

Definition GlobalMergeFunctions.h:34

@ BuildingHashFuncion

Definition GlobalMergeFunctions.h:35

@ UsingHashFunction

Definition GlobalMergeFunctions.h:36

Module.h This file contains the declarations for the Module class.

This header defines various interfaces for pass management in LLVM.

A container for analyses that lazily runs them and caches their results.

void analyze(Module &M)

Analyze module to create stable function into LocalFunctionMap.

void initializeMergerMode(const Module &M)

bool merge(Module &M, const StableFunctionMap *FunctionMap)

Merge functions in the module using the given function map.

GlobalMergeFunc(const ModuleSummaryIndex *Index)

Definition GlobalMergeFunctions.h:63

void emitFunctionMap(Module &M)

Emit LocalFunctionMap into __llvm_merge section.

static constexpr char MergingInstanceSuffix[]

The suffix used to identify the merged function that parameterizes the constant values.

Definition GlobalMergeFunctions.h:61

Class to hold module path string table and global value map, and encapsulate methods for operating on...

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.

This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.

This is an optimization pass for GlobalISel generic memory operations.

SmallVector< IndexPair, 4 > ParamLocs

Definition GlobalMergeFunctions.h:43

SmallVector< ParamLocs, 8 > ParamLocsVecTy

Definition GlobalMergeFunctions.h:45

GlobalMergeFuncPass(const ModuleSummaryIndex *ImportSummary)

Definition GlobalMergeFunctions.h:83

PreservedAnalyses run(Module &M, AnalysisManager< Module > &)

const ModuleSummaryIndex * ImportSummary

Definition GlobalMergeFunctions.h:81

GlobalMergeFuncPass()=default

A CRTP mix-in to automatically provide informational APIs needed for passes.