void EnumTypes::installOn(Converter& converter) const { // registers type handler converter.getTypeManager().addTypeHandler(EnumTypeHandler); // register additional operators converter.getFunctionManager().getOperatorConverterTable().insertAll(getEnumTypeOperatorTable(converter.getNodeManager())); // register additional StatementConverter converter.getStmtConverter().addStmtHandler(EnumLiteralHandler); }
Converter OCLHostBackend::buildConverter(core::NodeManager& manager) const { // get standard converter from runtime backend Converter converter = runtime::RuntimeBackend::buildConverter(manager); // update converter name converter.setConverterName("OpenCL Host Backend"); // set up pre-processing PreProcessorPtr preprocessor = makePreProcessor<PreProcessingSequence>( getBasicPreProcessorSequence(SKIP_POINTWISE_EXPANSION), makePreProcessor<ocl_kernel::KernelPreprocessor>(kernelDumpPath), makePreProcessor<HostPreprocessor>(), makePreProcessor<runtime::WorkItemizer>(), makePreProcessor<runtime::StandaloneWrapper>() ); converter.setPreProcessor(preprocessor); // update type manager TypeManager& typeManager = converter.getTypeManager(); addOCLTypeIncludes(typeManager.getTypeIncludeTable()); typeManager.addTypeHandler(OclHostTypeHandler); // update statement converter StmtConverter& stmtConverter = converter.getStmtConverter(); stmtConverter.addStmtHandler(OclHostStmtHandler); // update function manager FunctionManager& functionManager = converter.getFunctionManager(); addOpenclHostFunctionIncludes(functionManager.getFunctionIncludeTable()); addOpenCLHostSpecificOps(manager, functionManager.getOperatorConverterTable()); // done return converter; }