LLVM: include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.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_OBJECTTRANSFORMLAYER_H

14#define LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H

15

19#include

20#include

21

22namespace llvm {

23namespace orc {

24

26 : public RTTIExtends<ObjectTransformLayer, ObjectLayer> {

27public:

28 static char ID;

29

31 std::function<Expected<std::unique_ptr>(

32 std::unique_ptr)>;

33

36

37 void emit(std::unique_ptr R,

38 std::unique_ptr O) override;

39

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

42 }

43

44private:

46 TransformFunction Transform;

47};

48

49}

50}

51

52#endif

Inheritance utility for extensible RTTI.

An ExecutionSession represents a running JIT program.

Interface for Layers that accept object files.

void emit(std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< MemoryBuffer > O) override

static char ID

Definition ObjectTransformLayer.h:28

std::function< Expected< std::unique_ptr< MemoryBuffer > >( std::unique_ptr< MemoryBuffer >)> TransformFunction

Definition ObjectTransformLayer.h:30

ObjectTransformLayer(ExecutionSession &ES, ObjectLayer &BaseLayer, TransformFunction Transform=TransformFunction())

void setTransform(TransformFunction Transform)

Definition ObjectTransformLayer.h:40

This is an optimization pass for GlobalISel generic memory operations.