LLVM: lib/Target/AMDGPU/AMDGPUMemoryUtils.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPUMEMORYUTILS_H

10#define LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPUMEMORYUTILS_H

11

15

16namespace llvm {

17

30

32

35

37

38

40

43

49

51

55

57

58

59

62

63

64

65

67

68

71

72}

73

74}

75

76#endif

Lower uses of LDS variables from non kernel functions

MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL

This file defines the DenseMap class.

This file defines the DenseSet and SmallDenseSet classes.

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

The basic data container for the call graph of a Module of IR.

A parsed version of the target data layout string in and methods for querying it.

An instruction for reading from memory.

Represents a read-write access to memory, whether it is a must-alias, or a may-alias.

Encapsulates MemorySSA, including all data associated with memory accesses.

A Module instance is used to store all the information related to an LLVM module.

Class to represent target extensions types, which are generally unintrospectable from target-independ...

LLVM Value Representation.

Abstract Attribute helper functions.

bool isDynamicLDS(const GlobalVariable &GV)

void removeFnAttrFromReachable(CallGraph &CG, Function *KernelRoot, ArrayRef< StringRef > FnAttrs)

Strip FnAttr attribute from any functions where we may have introduced its use.

void getUsesOfLDSByFunction(const CallGraph &CG, Module &M, FunctionVariableMap &kernels, FunctionVariableMap &Functions)

bool isReallyAClobber(const Value *Ptr, MemoryDef *Def, AAResults *AA)

Given a Def clobbering a load from Ptr according to the MSSA check if this is actually a memory updat...

LDSUsesInfoTy getTransitiveUsesOfLDS(const CallGraph &CG, Module &M)

DenseMap< Function *, DenseSet< GlobalVariable * > > FunctionVariableMap

Definition AMDGPUMemoryUtils.h:33

TargetExtType * isNamedBarrier(const GlobalVariable &GV)

bool isLDSVariableToLower(const GlobalVariable &GV)

bool eliminateConstantExprUsesOfLDSFromAllInstructions(Module &M)

Align getAlign(const DataLayout &DL, const GlobalVariable *GV)

DenseMap< GlobalVariable *, DenseSet< Function * > > VariableFunctionMap

Definition AMDGPUMemoryUtils.h:34

bool isClobberedInFunction(const LoadInst *Load, MemorySSA *MSSA, AAResults *AA)

Check is a Load is clobbered in its function.

This is an optimization pass for GlobalISel generic memory operations.

Definition AMDGPUMemoryUtils.h:44

FunctionVariableMap direct_access

Definition AMDGPUMemoryUtils.h:45

FunctionVariableMap indirect_access

Definition AMDGPUMemoryUtils.h:46

bool HasSpecialGVs

Definition AMDGPUMemoryUtils.h:47

This struct is a compact representation of a valid (non-zero power of two) alignment.