This is the first step to enable code sharing (and being in sync) between LLVM and compiler-rt/lib/profile. In this patch, most of the data structures, key constant literals, enums, and signature affecting ABI and raw format are moved to the common file InstrProfData.inc which is to be shared (via copy) across runtime and LLVM. The file InstrProfData.inc is also restructured to allow it being included standalone. In particular
- Moved raw header field defs into the template file
- Moved VP kind enum to the file (affecting ProfData layout)
- Moved raw version, magic definitions to the file
- Moved runtime section name/namestring defs (with macros) in the file
- Added value profiling entry point API signature def
- change the comments into C style
- Added more documentation.