GCC AutoFDO profile reader - Initial support.

This adds enough machinery to support reading simple GCC AutoFDO
profiles. It now supports reading flat profiles (no function calls).
Subsequent patches will add support for:

- Inlined calls (in particular, the inline call stack is not traversed
  to accumulate samples).

- Working sets and modules. These are used mostly for GCC's LIPO
  optimizations, so they're not needed in LLVM atm. I'm not sure that
  we will ever need them. For now, I've if0'd around the calls.

The patch also adds support in GCOV.h for gcov version V704 (generated
by GCC's profile conversion tool).

llvm-svn: 247874
This commit is contained in:
Diego Novillo
2015-09-17 00:17:24 +00:00
parent c6d032ab81
commit 3376a78781
7 changed files with 580 additions and 13 deletions

View File

@@ -38,6 +38,8 @@ class SampleProfErrorCategoryType : public std::error_category {
return "Malformed profile data";
case sampleprof_error::unrecognized_format:
return "Unrecognized profile encoding format";
case sampleprof_error::not_implemented:
return "Unimplemented feature";
}
llvm_unreachable("A value of sampleprof_error has no message.");
}