Documentation for microsoft::quantum::ConfigurableQirAdaptorFactory
microsoft::quantum::ConfigurableQirAdaptorFactory
#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