LLVM: include/llvm/Transforms/IPO/OpenMPOpt.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_TRANSFORMS_IPO_OPENMPOPT_H

10#define LLVM_TRANSFORMS_IPO_OPENMPOPT_H

11

15

16namespace llvm {

17

18namespace omp {

19

20

22

23

25

26

28

29

31

32

33

35

36

38

39}

40

41

43public:

46

48

49private:

51};

52

54public:

57

60

61private:

63};

64

65}

66

67#endif

This header provides classes for managing passes over SCCs of the call graph.

This header defines various interfaces for pass management in LLVM.

Implements a lazy call graph analysis and related passes for the new pass manager.

An SCC of the call graph.

A lazily constructed view of the call graph of a module.

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

OpenMPOptCGSCCPass()=default

PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, LazyCallGraph &CG, CGSCCUpdateResult &UR)

OpenMPOptCGSCCPass(ThinOrFullLTOPhase LTOPhase)

Definition OpenMPOpt.h:56

OpenMPOptPass(ThinOrFullLTOPhase LTOPhase)

Definition OpenMPOpt.h:45

PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)

A set of analyses that are preserved following a run of a transformation pass.

A vector that has set insertion semantics.

@ C

The default llvm calling convention, compatible with C.

bool isOpenMPDevice(Module &M)

Helper to determine if M is a OpenMP target offloading device module.

bool containsOpenMP(Module &M)

Helper to determine if M contains OpenMP.

KernelSet getDeviceKernels(Module &M)

Get OpenMP device kernels in M.

SetVector< Kernel > KernelSet

Set of kernels in the module.

Definition OpenMPOpt.h:24

Function * Kernel

Summary of a kernel (=entry point for target offloading).

Definition OpenMPOpt.h:21

bool isOpenMPKernel(Function &Fn)

Return true iff Fn is an OpenMP GPU kernel; Fn has the "kernel" attribute.

This is an optimization pass for GlobalISel generic memory operations.

AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & > CGSCCAnalysisManager

The CGSCC analysis manager.

ThinOrFullLTOPhase

This enumerates the LLVM full LTO or ThinLTO optimization phases.

@ None

No LTO/ThinLTO behavior needed.

AnalysisManager< Module > ModuleAnalysisManager

Convenience typedef for the Module analysis manager.

Support structure for SCC passes to communicate updates the call graph back to the CGSCC pass manager...

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