[PATCH] D25687: [PGO] fix bogus warning for merging empty llvm profile file

Vedant Kumar via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 18 11:14:36 PDT 2016


vsk added a comment.

Thanks for splitting the patch up. Please upload diffs with more context in the future (e.g git diff -U1000).



================
Comment at: include/llvm/ProfileData/InstrProfReader.h:108
+  /// instrprof file. Nullptr will be returned for an empty profile file.
   static Expected<std::unique_ptr<InstrProfReader>> create(const Twine &Path);
 
----------------
This breaks CoverageMapping::load(), and creates an inconsistency between the API's for InstrProfReader::create and IndexedInstrProfReader::create (one can successfully return nullptr, the other can't).

I'd prefer for this functionality to be implemented via a new instrprof_error. Clients can opt into handling this as a 'soft'/recoverable error, or fail with an appropriate diagnostic packaged up by the Error.


================
Comment at: tools/llvm-profdata/llvm-profdata.cpp:149
+  if (!Reader)
+    return;
   bool IsIRProfile = Reader->isIRLevelProfile();
----------------
In llvm-profdata's loadInput, you could write:

```
if ((Error E = ReaderOrErr.takeError())) {
  if (E != instrprof_error::empty_profile)
    WC->Err = std::move(E);
  return;
}   
```


https://reviews.llvm.org/D25687





More information about the llvm-commits mailing list