当前位置: 首页>>代码示例>>C++>>正文


C++ NodeMap::empty方法代码示例

本文整理汇总了C++中NodeMap::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ NodeMap::empty方法的具体用法?C++ NodeMap::empty怎么用?C++ NodeMap::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在NodeMap的用法示例。


在下文中一共展示了NodeMap::empty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: PostVisit

ExpressionPtr IclHostPlugin::PostVisit(const clang::Expr* expr, const insieme::core::ExpressionPtr& irExpr,
                                               insieme::frontend::conversion::Converter& convFact) {
	NodeManager& mgr = irExpr->getNodeManager();
	IRBuilder builder(mgr);
	const core::lang::BasicGenerator& gen = builder.getLangBasic();
		iclRunKernel = irp::callExpr(pattern::any, irp::literal("icl_run_kernel"),
				var("derefKernel", irp::callExpr(pattern::any, pattern::atom(gen.getRefDeref()), pattern::single(var("kernel", pattern::any)))) <<
				*pattern::any << irp::callExpr(pattern::any, pattern::atom(gen.getVarlistPack()),
				pattern::single(irp::tupleExpr(pattern::any << irp::expressions(*var("args", pattern::any))))));

	core::pattern::TreePattern derefOfIclBuffer = irp::callExpr(pattern::atom(builder.refType(
																					builder.arrayType(builder.genericType("_icl_buffer")))),
																					pattern::atom(gen.getRefDeref()), 
																					pattern::single(var("buffer", pattern::any)));


	NodeMap replacements;
	irp::matchAllPairs(iclRunKernel, irExpr, [&](const NodePtr& matchPtr, const NodeMatch& runKernel) {

		// remove deref from buffers
		for(NodePtr arg : runKernel["args"].getFlattened()) {
			MatchOpt match = derefOfIclBuffer.matchPointer(arg);
			if(match) {
				replacements[match.get().getRoot()] = match.get()["buffer"].getValue();
			}
		}
	});
	if(!replacements.empty())
		return transform::replaceAll(mgr, irExpr, replacements).as<ExpressionPtr>();

	return irExpr;
}
开发者ID:alcides,项目名称:insieme,代码行数:32,代码来源:ocl_host_extension.cpp


注:本文中的NodeMap::empty方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。