ABataev added a comment. Thinking more about this patch I think it is a right solution to override void `llvm::Value *emitParallelOrTeamsOutlinedFunction()` and `void emitTeamsCall()` for `CGOpenMPRuntimeNVPTX` class:
llvm::Value *CGOpenMPRuntimeNVPTX::emitParallelOrTeamsOutlinedFunction() { llvm::Value *OutlinedFn = CGOpenMPRuntime::emitParallelOrTeamsOutlinedFunction(); cast<llvm::Function>(OutlinedFn)->addFnAttr(llvm::Attribute::AlwaysInline); return OutlinedFn; } void CGOpenMPRuntimeNVPTX::emitTeamsCall() { if (!CGF.HaveInsertPoint()) return; CodeGenFunction::RunCleanupsScope Scope(CGF); Address ZeroAddr = CGF.CreateTempAlloca(CGF.Int32Ty, CharUnits::fromQuantity(4), /*Name*/ ".zero.addr"); CGF.InitTempAlloca(ZeroAddr, CGF.Builder.getInt32(/*C*/ 0)); llvm::SmallVector<llvm::Value *, 16> OutlinedFnArgs; OutlinedFnArgs.push_back(ZeroAddr.getPointer()); OutlinedFnArgs.push_back(ZeroAddr.getPointer()); OutlinedFnArgs.append(CapturedVars.begin(), CapturedVars.end()); CGF.EmitCallOrInvoke(OutlinedFn, OutlinedFnArgs); } Also, please update patch to the latest revision Repository: rL LLVM http://reviews.llvm.org/D18286 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits