<div dir="ltr">Looks good, but if the message is augmented to be something like the following:<div><br></div><div>error: foo.profdata: Malformed instrumented profile data. Perhaps you forgot to use -sample option?<br></div><div><br></div><div>would make it even more friendlier.</div><div><br></div><div>thanks,</div><div><br></div><div>David</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 10, 2015 at 4:33 PM, Nathan Slingerland <span dir="ltr"><<a href="mailto:slingn@gmail.com" target="_blank">slingn@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">slingn created this revision.<br>
slingn added reviewers: dnovillo, bogner, davidxl.<br>
slingn added a subscriber: llvm-commits.<br>
<br>
This change addresses two possible instances of user error / confusion when<br>
merging sampled profile data.<br>
<br>
Previously any input that didn't match the raw or processed instrumented format<br>
would automatically be interpreted as instrumented profile text format data.<br>
No error would be reported during the merge.<br>
<br>
Example:<br>
If foo-sampled.profdata and bar-sampled.profdata are binary sampled profiles:<br>
<br>
Old behavior:<br>
$ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -output foobar-sampled.profdata<br>
$ llvm-profdata show -sample foobar-sampled.profdata<br>
error: foobar-sampled.profdata:1: Expected 'mangled_name:NUM:NUM', found  lprofi<br>
<br>
This change adds basic checks for plain ASCII input data when assuming text<br>
input. It also makes error messages related to file format validity more<br>
specific about the assumbed profile data type.<br>
<br>
New behavior:<br>
$ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -output foobar-sampled.profdata<br>
error: foo.profdata: Malformed instrumented profile data<br>
<br>
<a href="http://reviews.llvm.org/D14558" rel="noreferrer" target="_blank">http://reviews.llvm.org/D14558</a><br>
<br>
Files:<br>
  include/llvm/ProfileData/InstrProfReader.h<br>
  include/llvm/ProfileData/SampleProfReader.h<br>
  lib/ProfileData/InstrProf.cpp<br>
  lib/ProfileData/InstrProfReader.cpp<br>
  lib/ProfileData/SampleProf.cpp<br>
  lib/ProfileData/SampleProfReader.cpp<br>
  test/tools/llvm-profdata/raw-magic-but-no-header.test<br>
  test/tools/llvm-profdata/text-format-errors.test<br>
<br>
</blockquote></div><br></div>