LLVM 22.0.0git
llvm::orc::IRTransformLayer Class Reference

A layer that applies a transform to emitted modules. More...

#include "llvm/ExecutionEngine/Orc/IRTransformLayer.h"

Inheritance diagram for llvm::orc::IRTransformLayer:
[legend]

Public Types

using TransformFunction

Public Member Functions

 IRTransformLayer (ExecutionSession &ES, IRLayer &BaseLayer, TransformFunction Transform=identityTransform)
void setTransform (TransformFunction Transform)
void emit (std::unique_ptr< MaterializationResponsibility > R, ThreadSafeModule TSM) override
 Emit should materialize the given IR.
Public Member Functions inherited from llvm::orc::IRLayer
 IRLayer (ExecutionSession &ES, const IRSymbolMapper::ManglingOptions *&MO)
virtual ~IRLayer ()
ExecutionSessiongetExecutionSession ()
 Returns the ExecutionSession for this layer.
const IRSymbolMapper::ManglingOptions *& getManglingOptions () const
 Get the mangling options for this layer.
void setCloneToNewContextOnEmit (bool CloneToNewContextOnEmit)
 Sets the CloneToNewContextOnEmit flag (false by default).
bool getCloneToNewContextOnEmit () const
 Returns the current value of the CloneToNewContextOnEmit flag.
virtual Error add (ResourceTrackerSP RT, ThreadSafeModule TSM)
 Add a MaterializatinoUnit representing the given IR to the JITDylib targeted by the given tracker.
Error add (JITDylib &JD, ThreadSafeModule TSM)
 Adds a MaterializationUnit representing the given IR to the given JITDylib.

Static Public Member Functions

static ThreadSafeModule identityTransform (ThreadSafeModule TSM, MaterializationResponsibility &R)

Detailed Description

A layer that applies a transform to emitted modules.

The transform function is responsible for locking the ThreadSafeContext before operating on the module.

Definition at line 28 of file IRTransformLayer.h.

Member Typedef Documentation

◆ TransformFunction

Initial value:
Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and...
Definition Core.h:576
An LLVM Module together with a shared ThreadSafeContext.
unique_function is a type-erasing functor similar to std::function.

Definition at line 30 of file IRTransformLayer.h.

Constructor & Destructor Documentation

◆ IRTransformLayer()

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

Member Function Documentation

◆ emit()

void llvm::orc::IRTransformLayer::emit ( std::unique_ptr< MaterializationResponsibility > R,
ThreadSafeModule TSM )
overridevirtual

Emit should materialize the given IR.

Implements llvm::orc::IRLayer.

Definition at line 19 of file IRTransformLayer.cpp.

References assert(), llvm::orc::IRLayer::getExecutionSession(), and llvm::orc::ExecutionSession::reportError().

◆ identityTransform()

ThreadSafeModule llvm::orc::IRTransformLayer::identityTransform ( ThreadSafeModule TSM,
MaterializationResponsibility & R )
inlinestatic

Definition at line 43 of file IRTransformLayer.h.

◆ setTransform()

void llvm::orc::IRTransformLayer::setTransform ( TransformFunction Transform)
inline

Definition at line 36 of file IRTransformLayer.h.


The documentation for this class was generated from the following files: