diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2017-08-04 21:26:25 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2017-08-04 21:26:25 +0000 |
commit | efd884d3938c8866a49c1753d5450f32d258835c (patch) | |
tree | 08a4fc05f22fb0b90cd15b0294ae609c58752779 /clang/lib/CodeGen | |
parent | a53de0bf0fa31a730746a79d22b5a5c6d59e414c (diff) | |
download | bcm5719-llvm-efd884d3938c8866a49c1753d5450f32d258835c.tar.gz bcm5719-llvm-efd884d3938c8866a49c1753d5450f32d258835c.zip |
Revert "[OPENMP] Fix for pacify buildbots, NFC."
This reverts commit r310120.
llvm-svn: 310134
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGStmtOpenMP.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp index 54d381798c6..e7e5976e601 100644 --- a/clang/lib/CodeGen/CGStmtOpenMP.cpp +++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp @@ -320,7 +320,10 @@ static std::pair<llvm::Function *, bool> emitOutlinedFunctionPrologue( ArgType, ImplicitParamDecl::Other); Args.emplace_back(Arg); // Do not cast arguments if we emit function with non-original types. - TargetArgs.emplace_back(CGM.getOpenMPRuntime().translateParameter(FD, Arg)); + TargetArgs.emplace_back( + FO.UIntPtrCastRequired + ? Arg + : CGM.getOpenMPRuntime().translateParameter(FD, Arg)); ++I; } Args.append( @@ -444,11 +447,15 @@ CodeGenFunction::GenerateOpenMPCapturedStmtFunction(const CapturedStmt &S) { FunctionArgList Args; llvm::DenseMap<const Decl *, std::pair<const VarDecl *, Address>> LocalAddrs; llvm::DenseMap<const Decl *, std::pair<const Expr *, llvm::Value *>> VLASizes; - FunctionOptions FO(&S, !NeedWrapperFunction, /*RegisterCastedArgsOnly=*/false, - CapturedStmtInfo->getHelperName(), - [](CodeGenFunction &CGF, const VarDecl *VD, Address Addr) { - CGF.setAddrOfLocalVar(VD, Addr); - }); + FunctionOptions FO( + &S, !NeedWrapperFunction, /*RegisterCastedArgsOnly=*/false, + CapturedStmtInfo->getHelperName(), + [NeedWrapperFunction](CodeGenFunction &CGF, const VarDecl *VD, + Address Addr) { + assert(NeedWrapperFunction && "Function should not be called if " + "wrapper function is not required."); + CGF.setAddrOfLocalVar(VD, Addr); + }); llvm::Function *F; bool HasUIntPtrArgs; std::tie(F, HasUIntPtrArgs) = emitOutlinedFunctionPrologue( @@ -470,12 +477,11 @@ CodeGenFunction::GenerateOpenMPCapturedStmtFunction(const CapturedStmt &S) { SmallString<256> Buffer; llvm::raw_svector_ostream Out(Buffer); Out << "__nondebug_wrapper_" << CapturedStmtInfo->getHelperName(); - FunctionOptions WrapperFO( - &S, /*UIntPtrCastRequired=*/true, - /*RegisterCastedArgsOnly=*/true, Out.str(), - [](CodeGenFunction &CGF, const VarDecl *VD, Address Addr) { - CGF.setAddrOfLocalVar(VD, Addr); - }); + FunctionOptions WrapperFO(&S, /*UIntPtrCastRequired=*/true, + /*RegisterCastedArgsOnly=*/true, Out.str(), + [](CodeGenFunction &, const VarDecl *, Address) { + llvm_unreachable("Function should not be called"); + }); CodeGenFunction WrapperCGF(CGM, /*suppressNewContext=*/true); WrapperCGF.disableDebugInfo(); Args.clear(); |