Documentation for microsoft::quantum::ConfigurableQirAdaptorFactory

microsoft::quantum::ConfigurableQirAdaptorFactory

More...

#include <AdaptorFactory/ConfigurableQirAdaptorFactory.hpp>

Inherits from microsoft::quantum::QirAdaptorFactory

Public Types

Name
enum class SetupMode { DoNothing, SetupPipeline}
using std::function< void(RuleSet &)> ConfigureFunction
Function type that configures a rule set.

Public Functions

Name
ConfigurableQirAdaptorFactory(ConfigurationManager & configuration_manager, SetupMode const & mode =SetupMode::SetupPipeline)
ConfigurableQirAdaptorFactory(ConfigurationManager & configuration_manager, ConfigureFunction const & configure, TargetQisMappingPassConfiguration const & adaptor_pass_config =TargetQisMappingPassConfiguration::createDisabled(), LlvmPassesConfiguration const & llvm_config =LlvmPassesConfiguration::createDisabled())
TargetQisMappingPassConfiguration const & ruleTransformationConfig() const
Returns a constant reference to the rule transformation configuration.
LlvmPassesConfiguration const & llvmPassesConfig() const
Returns a constant reference to the LLVM passes configuration.

Additional inherited members

Public Types inherited from microsoft::quantum::QirAdaptorFactory

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 inherited from microsoft::quantum::QirAdaptorFactory

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 inherited from microsoft::quantum::QirAdaptorFactory

Name
llvm::ModulePassManager createValidationModulePass(PassBuilder & pass_builder, OptimizationLevel const & optimization_level, bool debug)

Detailed Description

class microsoft::quantum::ConfigurableQirAdaptorFactory;

ConfigurableQirAdaptorFactory defines a adaptor that configures the rule set used by the QirAdaptor pass. This adaptor is useful for generating dynamic adaptors and is well suited for testing purposes or YAML configured transformation of the IR.

Public Types Documentation

enum SetupMode

Enumerator Value Description
DoNothing
SetupPipeline

using ConfigureFunction

using microsoft::quantum::ConfigurableQirAdaptorFactory::ConfigureFunction =  std::function<void(RuleSet&)>;

Function type that configures a rule set.

Public Functions Documentation

function ConfigurableQirAdaptorFactory

explicit ConfigurableQirAdaptorFactory(
    ConfigurationManager & configuration_manager,
    SetupMode const & mode =SetupMode::SetupPipeline
)

Default constructor. This constructor adds components for rule transformation and LLVM passes. These are configurable through the corresponding configuration classes which can be access through the configuration manager.

function ConfigurableQirAdaptorFactory

explicit ConfigurableQirAdaptorFactory(
    ConfigurationManager & configuration_manager,
    ConfigureFunction const & configure,
    TargetQisMappingPassConfiguration const & adaptor_pass_config =TargetQisMappingPassConfiguration::createDisabled(),
    LlvmPassesConfiguration const & llvm_config =LlvmPassesConfiguration::createDisabled()
)

The constructor takes a lambda function which configures the rule set. This function is invoked during the creation of the generation module. This constructor further overrides the default configuration

function ruleTransformationConfig

TargetQisMappingPassConfiguration const  & ruleTransformationConfig() const

Returns a constant reference to the rule transformation configuration.

function llvmPassesConfig

LlvmPassesConfiguration const  & llvmPassesConfig() const

Returns a constant reference to the LLVM passes configuration.


Updated on 1 August 2023 at 16:25:10 UTC