jfb added inline comments.

================
Comment at: tools/clang/lib/CodeGen/CGDecl.cpp:979
+  if (CGM.getCodeGenOpts().OptimizationLevel == 0)
+    return false;
+  if (GlobalSize <= SizeLimit)
----------------
rjmccall wrote:
> glider wrote:
> > jfb wrote:
> > > The general 64-byte heuristic is fine with me. It's just a bit weird to 
> > > special-case `-O0`, but we do it elsewhere too (and it keeps the current 
> > > status-quo of letting the backend decide what to do). From that 
> > > perspective I'm fine with it.
> > > 
> > > @rjmccall do you have a strong preference either way?
> > > 
> > > One small nit: can you use `ByteSize` instead of just `Size`? Makes it 
> > > easier to figure out what's going on in code IMO.
> > I don't have a strong opinion on variable naming, but this:
> > ```
> >  974 static bool shouldSplitStructStore(CodeGenModule &CGM,
> >  975                                    uint64_t GlobalByteSize) {
> >  976   // Don't break structures that occupy more than one cacheline.
> >  977   uint64_t ByteSizeLimit = 64;
> >  978   if (CGM.getCodeGenOpts().OptimizationLevel == 0)
> >  979     return false;
> >  980   if (GlobalByteSize <= ByteSizeLimit)
> >  981     return true;
> >  982   return false;
> > ```
> > looks a bit more heavyweight than the previous function, in which we also 
> > have `GlobalSize` and `SizeLimit`.
> What are the cases we actually want to make sure we emit as separate stores?  
> Basically just really small types that happen to be wrapped up in several 
> layers of struct for abstraction purposes, right?  Maybe this heuristic 
> should primarily consider element counts (and types) and use overall sizes at 
> the top level.
Yes, small types. 


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D57898/new/

https://reviews.llvm.org/D57898



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to