John, thanks for the review!
================ Comment at: lib/CodeGen/CGStmtOpenMP.cpp:1391 @@ +1390,3 @@ + } + } + CGM.getOpenMPRuntime().emitTaskCall(*this, S.getLocStart(), S, Tied, Final, ---------------- rjmccall wrote: > You might want to consider sorting this array by alignment, which will give > you an optimal packing in the structure you end up building. On the other > hand, it might be better to do that implicitly when building the structure > later, then just keep a map from the index in this array to the index there. > > Is there a good reason to pass around Privates as an array of Expr* instead > of an array of VarDecl*? It feels like you just end up having to drill down > to the declaration constantly. > > Also, why not make a single SmallVector of a struct containing both the > VarDecl* and the copy expr? I will sort it when building the structure, I don't think that we need to expose some specific details to general codegen procedure. I can provide a list of VarDecls*, but all other similar methods accept ArrayRef<const Expr *>, not ArrayRef<const VarDecl *>. I just don't want to break some "uniformness" of CGOpenMPRuntime methods. Also I thought about joining two lists in one, but again it will break some already used format of interface. But I think I will join them internally in CGOpenMPRuntime. http://reviews.llvm.org/D9322 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
