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

Reply via email to