ckissane added inline comments.

================
Comment at: llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp:54-60
+  OptionalCompressionScheme = compression::noneIfUnsupported(
+      (Compress && DoInstrProfNameCompression) ? OptionalCompressionScheme
+                                               : llvm::NoneType());
+
+  bool doCompression = bool(OptionalCompressionScheme);
+
+  if (doCompression) {
----------------
dblaikie wrote:
> This still seems like a lot of hoops to jump through - why 
> "noneIfUnsupported" rather than either having the compression scheme (I think 
> it could be the CompressionAlgorithm itself, rather than having the separate 
> OptionalCompressionKind abstraction) either be null itself, or expose an 
> "isAvailable" operation directly on the CompressionAlgorithm?
> 
> Even if the CompressionKind/OptionalCompressionKind/CompressionAlgorithm 
> abstractions are kept, I'm not sure why the above code is preferred over, say:
> 
> ```
> if (Compress && DoInstrProfNameCompression && OptionalCompressionScheme /* 
> .isAvailable(), if we want to be more explicit */) {
>   ...
> }
> ```
> 
> What's the benefit that `noneIfUnsupported` is providing? (& generally I'd 
> expect the `Compress && DoInstrProfNameCompression` to be tested/exit early 
> before even naming/constructing/querying/doing anything with the compression 
> scheme/algorithm/etc - so there'd be no need to combine the tests for 
> availability and the tests for whether compression was requested)
> 
> Perhaps this API is motivated by a desire to implement something much closer 
> to the original code than is necessary/suitable? Or some other use 
> case/benefit I'm not quite understanding yet?
I shall remove `noneIfUnsupported`. You express good points, we can simply 
check `if(OptionalCompressionScheme && *OptionalCompressionScheme)` where 
necessary.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130516

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

Reply via email to