class ObjectTransformLayer

Declaration

class ObjectTransformLayer : public RTTIExtends { /* full declaration omitted */ };

Description

Inheritance utility for extensible RTTI. Supports single inheritance only: A class can only have one ExtensibleRTTI-parent (i.e. a parent for which the isa < > test will work), though it can have many non-ExtensibleRTTI parents. RTTIExtents uses CRTP so the first template argument to RTTIExtends is the newly introduced type, and the *second* argument is the parent class. class MyType : public RTTIExtends <MyType , RTTIRoot> { public: static char ID; }; class MyDerivedType : public RTTIExtends <MyDerivedType , MyType> { public: static char ID; };

Declared at: llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h:24

Inherits from: RTTIExtends

Member Variables

private llvm::orc::ObjectLayer& BaseLayer
private llvm::orc::ObjectTransformLayer::TransformFunction Transform
public static char ID

Method Overview

  • public ObjectTransformLayer(llvm::orc::ExecutionSession & ES, llvm::orc::ObjectLayer & BaseLayer, llvm::orc::ObjectTransformLayer::TransformFunction Transform = std::function<llvm::Expected<std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>> (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>)>())
  • public void emit(std::unique_ptr<MaterializationResponsibility> R, std::unique_ptr<MemoryBuffer> O)
  • public void setTransform(llvm::orc::ObjectTransformLayer::TransformFunction Transform)

Methods

ObjectTransformLayer(
    llvm::orc::ExecutionSession& ES,
    llvm::orc::ObjectLayer& BaseLayer,
    llvm::orc::ObjectTransformLayer::
        TransformFunction Transform =
            std::function<llvm::Expected<
                std::unique_ptr<
                    llvm::MemoryBuffer,
                    std::default_delete<
                        llvm::MemoryBuffer>>>(
                std::unique_ptr<
                    llvm::MemoryBuffer,
                    std::default_delete<
                        llvm::MemoryBuffer>>)>())

Declared at: llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h:33

Parameters

llvm::orc::ExecutionSession& ES
llvm::orc::ObjectLayer& BaseLayer
llvm::orc::ObjectTransformLayer::TransformFunction Transform = std::function<llvm::Expected<std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>> (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>)>()

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

Description

Emit should materialize the given IR.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h:36

Parameters

std::unique_ptr<MaterializationResponsibility> R
std::unique_ptr<MemoryBuffer> O

void setTransform(
    llvm::orc::ObjectTransformLayer::
        TransformFunction Transform)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h:39

Parameters

llvm::orc::ObjectTransformLayer::TransformFunction Transform