Documentation for microsoft::quantum::QirAdaptorFactory
microsoft::quantum::QirAdaptorFactory
Inherited by microsoft::quantum::ConfigurableQirAdaptorFactory
Public Types
Name | |
---|---|
using llvm::PassBuilder | PassBuilder |
using llvm::OptimizationLevel | OptimizationLevel |
using llvm::FunctionAnalysisManager | FunctionAnalysisManager |
using std::shared_ptr< QirAdaptor > | QirAdaptorPtr |
using std::shared_ptr< BasicAllocationManager > | BasicAllocationManagerPtr |
using llvm::FunctionPassManager | FunctionPassManager |
template <typename R > using std::function< void(R const &, QirAdaptor &)> |
SetupFunction |
using std::function< void(QirAdaptorFactory &, QirAdaptor &)> | SetupFunctionWrapper Wrapper function type for invoking the adaptor setup function. |
using std::vector< std::pair< String, SetupFunctionWrapper > > | Components List of components to be configured. |
using ILogger::ILoggerPtr | ILoggerPtr |
Public Functions
Name | |
---|---|
QirAdaptorFactory(ConfigurationManager & configuration_manager) | |
~QirAdaptorFactory() =default | |
QirAdaptorFactory(QirAdaptorFactory const & ) | |
QirAdaptorFactory(QirAdaptorFactory && ) | |
QirAdaptorFactory & | operator=(QirAdaptorFactory const & ) |
QirAdaptorFactory & | operator=(QirAdaptorFactory && ) |
ConfigurationManager & | configurationManager() |
ConfigurationManager const & | configurationManager() const |
QirAdaptorPtr | newQirAdaptor(String const & name, OptimizationLevel const & optimization_level, bool debug) |
void | newAdaptorContext(String const & name, bool debug =false) Prepares a new adaptor context. |
void | addComponent(String const & name) Adds a component to the current context. |
QirAdaptorPtr | finalizeAdaptor() Finalizes the context and returns the QIR adaptor. |
template <typename R > void |
registerAdaptorComponent(String const & id, SetupFunction< R > setup) |
template <typename R > void |
replaceAdaptorComponent(String const & id, SetupFunction< R > setup) |
template <typename R > void |
registerAnonymousAdaptorComponent(SetupFunction< R > setup) |
void | replicateAdaptorComponent(String const & id) |
bool | isDebugMode() const Flag indicating whether we are operating in debug mode or not. |
void | setupDefaultComponentPipeline() Sets the default pipeline up. |
void | setLogger(ILoggerPtr const & logger =nullptr) |
Protected Functions
Name | |
---|---|
llvm::ModulePassManager | createValidationModulePass(PassBuilder & pass_builder, OptimizationLevel const & optimization_level, bool debug) |
Public Types Documentation
using PassBuilder
using microsoft::quantum::QirAdaptorFactory::PassBuilder = llvm::PassBuilder;
using OptimizationLevel
using microsoft::quantum::QirAdaptorFactory::OptimizationLevel = llvm::OptimizationLevel;
using FunctionAnalysisManager
using microsoft::quantum::QirAdaptorFactory::FunctionAnalysisManager = llvm::FunctionAnalysisManager;
using QirAdaptorPtr
using microsoft::quantum::QirAdaptorFactory::QirAdaptorPtr = std::shared_ptr<QirAdaptor>;
using BasicAllocationManagerPtr
using microsoft::quantum::QirAdaptorFactory::BasicAllocationManagerPtr = std::shared_ptr<BasicAllocationManager>;
using FunctionPassManager
using microsoft::quantum::QirAdaptorFactory::FunctionPassManager = llvm::FunctionPassManager;
using SetupFunction
template <typename R >
using microsoft::quantum::QirAdaptorFactory::SetupFunction = std::function<void(R const&, QirAdaptor&)>;
Setup function that uses a configuration type R to configure the adaptor and/or generator.
using SetupFunctionWrapper
using microsoft::quantum::QirAdaptorFactory::SetupFunctionWrapper = std::function<void(QirAdaptorFactory&, QirAdaptor&)>;
Wrapper function type for invoking the adaptor setup function.
using Components
using microsoft::quantum::QirAdaptorFactory::Components = std::vector<std::pair<String, SetupFunctionWrapper> >;
List of components to be configured.
using ILoggerPtr
using microsoft::quantum::QirAdaptorFactory::ILoggerPtr = ILogger::ILoggerPtr;
Public Functions Documentation
function QirAdaptorFactory
inline explicit QirAdaptorFactory(
ConfigurationManager & configuration_manager
)
function ~QirAdaptorFactory
~QirAdaptorFactory() =default
function QirAdaptorFactory
QirAdaptorFactory(
QirAdaptorFactory const &
)
function QirAdaptorFactory
QirAdaptorFactory(
QirAdaptorFactory &&
)
function operator=
QirAdaptorFactory & operator=(
QirAdaptorFactory const &
)
function operator=
QirAdaptorFactory & operator=(
QirAdaptorFactory &&
)
function configurationManager
ConfigurationManager & configurationManager()
Reference to configuration manager. This property allows to access and modify configurations of the generator. This property is intended for managing the configuration.
function configurationManager
ConfigurationManager const & configurationManager() const
Constant reference to the configuration manager. This property allows read access to the configuration manager and is intended for adaptor generation.
function newQirAdaptor
QirAdaptorPtr newQirAdaptor(
String const & name,
OptimizationLevel const & optimization_level,
bool debug
)
Creates a new adaptor based on the registered components, optimization level and debug requirements. The returned adaptor can be applied to an IR to transform it in accordance with the configurations given.
function newAdaptorContext
void newAdaptorContext(
String const & name,
bool debug =false
)
Prepares a new adaptor context.
function addComponent
void addComponent(
String const & name
)
Adds a component to the current context.
function finalizeAdaptor
QirAdaptorPtr finalizeAdaptor()
Finalizes the context and returns the QIR adaptor.
function registerAdaptorComponent
template <typename R >
void registerAdaptorComponent(
String const & id,
SetupFunction< R > setup
)
Registers a new adaptor component with a given configuration R. The adaptor component is given a name and a setup function which is responsible for configuring the adaptor in accordance with the configuration.
function replaceAdaptorComponent
template <typename R >
void replaceAdaptorComponent(
String const & id,
SetupFunction< R > setup
)
Replaces a adaptor component. This function is useful for testing purposes and alteration to the default set of components. For instance, one can setup a production set of components and then replace a single component to test the effects of this single replacement while keeping all other components actually as they are in production.
function registerAnonymousAdaptorComponent
template <typename R >
void registerAnonymousAdaptorComponent(
SetupFunction< R > setup
)
Registers a new adaptor component with a given configuration R. Unlike registerAdaptorComponent
this component will not have an ID.
function replicateAdaptorComponent
void replicateAdaptorComponent(
String const & id
)
Replicates an existing component as an anonymous component. The original component is found by its id and then copied as an anonymous component which is appended to the list of components.
function isDebugMode
bool isDebugMode() const
Flag indicating whether we are operating in debug mode or not.
function setupDefaultComponentPipeline
void setupDefaultComponentPipeline()
Sets the default pipeline up.
More unroll parameters https://llvm.org/doxygen/LoopUnrollPass_8cpp.html
Header https://llvm.org/doxygen/LoopUnrollPass_8h.html
function setLogger
void setLogger(
ILoggerPtr const & logger =nullptr
)
Protected Functions Documentation
function createValidationModulePass
llvm::ModulePassManager createValidationModulePass(
PassBuilder & pass_builder,
OptimizationLevel const & optimization_level,
bool debug
)
Internal function that creates a module pass for QIR validation. At the moment, this function is a placeholder for future functionality.
Updated on 1 August 2023 at 16:25:10 UTC