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

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_EXECUTIONENGINE_ORC_IRTRANSFORMLAYER_H

14#define LLVM_EXECUTIONENGINE_ORC_IRTRANSFORMLAYER_H

15

20#include

21

22namespace llvm {

23namespace orc {

24

25

26

27

29public:

32

35

37 this->Transform = std::move(Transform);

38 }

39

40 void emit(std::unique_ptr R,

42

47

48private:

50 TransformFunction Transform;

51};

52

53}

54}

55

56#endif

An ExecutionSession represents a running JIT program.

Interface for layers that accept LLVM IR.

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

void setTransform(TransformFunction Transform)

Definition IRTransformLayer.h:36

unique_function< Expected< ThreadSafeModule >( ThreadSafeModule, MaterializationResponsibility &R)> TransformFunction

Definition IRTransformLayer.h:30

IRTransformLayer(ExecutionSession &ES, IRLayer &BaseLayer, TransformFunction Transform=identityTransform)

static ThreadSafeModule identityTransform(ThreadSafeModule TSM, MaterializationResponsibility &R)

Definition IRTransformLayer.h:43

Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and...

An LLVM Module together with a shared ThreadSafeContext.

unique_function is a type-erasing functor similar to std::function.

This is an optimization pass for GlobalISel generic memory operations.