@@ -4898,6 +4898,9 @@ void CGOpenMPRuntime::emitSingleReductionCombiner(CodeGenFunction &CGF,
4898
4898
}
4899
4899
}
4900
4900
4901
+ static std::string generateUniqueName(CodeGenModule &CGM,
4902
+ llvm::StringRef Prefix, const Expr *Ref);
4903
+
4901
4904
void CGOpenMPRuntime::emitPrivateReduction(
4902
4905
CodeGenFunction &CGF, SourceLocation Loc, const Expr *Privates,
4903
4906
const Expr *LHSExprs, const Expr *RHSExprs, const Expr *ReductionOps) {
@@ -4929,7 +4932,8 @@ void CGOpenMPRuntime::emitPrivateReduction(
4929
4932
const OMPDeclareReductionDecl *UDR = getReductionInit(ReductionOps);
4930
4933
std::string ReductionVarNameStr;
4931
4934
if (const auto *DRE = dyn_cast<DeclRefExpr>(Privates->IgnoreParenCasts()))
4932
- ReductionVarNameStr = DRE->getDecl()->getNameAsString();
4935
+ ReductionVarNameStr =
4936
+ generateUniqueName(CGM, DRE->getDecl()->getNameAsString(), Privates);
4933
4937
else
4934
4938
ReductionVarNameStr = "unnamed_priv_var";
4935
4939
@@ -5460,16 +5464,10 @@ void CGOpenMPRuntime::emitReduction(CodeGenFunction &CGF, SourceLocation Loc,
5460
5464
5461
5465
CGF.EmitBranch(DefaultBB);
5462
5466
CGF.EmitBlock(DefaultBB, /*IsFinished=*/true);
5463
- assert(!LHSExprs.empty() && "PrivateVarReduction: LHSExprs is empty");
5464
- assert(!Privates.empty() && "PrivateVarReduction: Privates is empty");
5465
- assert(!ReductionOps.empty() && "PrivateVarReduction: ReductionOps is empty");
5466
- assert(LHSExprs.size() == Privates.size() &&
5467
+ assert(OrgLHSExprs.size() == OrgPrivates.size() &&
5467
5468
"PrivateVarReduction: Privates size mismatch");
5468
- assert(LHSExprs .size() == ReductionOps .size() &&
5469
+ assert(OrgLHSExprs .size() == OrgReductionOps .size() &&
5469
5470
"PrivateVarReduction: ReductionOps size mismatch");
5470
- assert(LHSExprs.size() == Options.IsPrivateVarReduction.size() &&
5471
- "PrivateVarReduction: IsPrivateVarReduction size mismatch");
5472
-
5473
5471
for (unsigned I : llvm::seq<unsigned>(
5474
5472
std::min(OrgReductionOps.size(), OrgLHSExprs.size()))) {
5475
5473
if (Options.IsPrivateVarReduction[I])
0 commit comments