LLVM: include/llvm/ExecutionEngine/Orc/IRPartitionLayer.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_EXECUTIONENGINE_ORC_IRPARTITIONLAYER_H

15#define LLVM_EXECUTIONENGINE_ORC_IRPARTITIONLAYER_H

16

32

33namespace llvm {

34namespace orc {

35

36

37

40

41public:

43

44

46 std::function<std::optional(GlobalValueSet Requested)>;

47

48

50

51

52

53 static std::optional

55

56

57

58 static std::optional

60

61

63

64

65

66 void emit(std::unique_ptr R,

68

69private:

70 void cleanUpModule(Module &M);

71

73

74 void emitPartition(std::unique_ptr R,

77

81};

82

83}

84}

85

86#endif

This file contains the simple types necessary to represent the attributes associated with functions a...

This file contains the declarations for the subclasses of Constant, which represent the different fla...

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

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

An ExecutionSession represents a running JIT program.

IRLayer(ExecutionSession &ES, const IRSymbolMapper::ManglingOptions *&MO)

std::map< SymbolStringPtr, GlobalValue * > SymbolNameToDefinitionMap

std::function< std::optional< GlobalValueSet >(GlobalValueSet Requested)> PartitionFunction

Partitioning function.

Definition IRPartitionLayer.h:45

void emit(std::unique_ptr< MaterializationResponsibility > R, ThreadSafeModule TSM) override

Emits the given module.

static std::optional< GlobalValueSet > compileWholeModule(GlobalValueSet Requested)

Off-the-shelf partitioning which compiles whole modules whenever any symbol in them is requested.

std::set< const GlobalValue * > GlobalValueSet

Definition IRPartitionLayer.h:42

IRPartitionLayer(ExecutionSession &ES, IRLayer &BaseLayer)

Construct a IRPartitionLayer.

void setPartitionFunction(PartitionFunction Partition)

Sets the partition function.

friend class PartitioningIRMaterializationUnit

Definition IRPartitionLayer.h:39

static std::optional< GlobalValueSet > compileRequested(GlobalValueSet Requested)

Off-the-shelf partitioning which compiles all requested symbols (usually a single function at a time)...

An LLVM Module together with a shared ThreadSafeContext.

This is an optimization pass for GlobalISel generic memory operations.