14#ifndef LLVM_EXECUTIONENGINE_ORC_IRPARTITIONLAYER_H
15#define LLVM_EXECUTIONENGINE_ORC_IRPARTITIONLAYER_H
45 std::function<std::optional<GlobalValueSet>(
GlobalValueSet Requested)>;
52 static std::optional<GlobalValueSet>
57 static std::optional<GlobalValueSet>
65 void emit(std::unique_ptr<MaterializationResponsibility> R,
69 void cleanUpModule(
Module &M);
73 void emitPartition(std::unique_ptr<MaterializationResponsibility> R,
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.
Interface for layers that accept LLVM IR.
std::map< SymbolStringPtr, GlobalValue * > SymbolNameToDefinitionMap
A layer that breaks up IR modules into smaller submodules that only contains looked up symbols.
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::function< std::optional< GlobalValueSet >(GlobalValueSet Requested)> PartitionFunction
Partitioning function.
std::set< const GlobalValue * > GlobalValueSet
void setPartitionFunction(PartitionFunction Partition)
Sets the partition function.
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.