mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
7ba22bc99a
Summary: This patch extends the 'show' and 'merge' commands in llvm-profdata to handle sample PGO formats. Using the 'merge' command it is now possible to convert one sample PGO format to another. The only format that is currently not working is 'gcc'. I still need to implement support for it in lib/ProfileData. The changes in the sample profile support classes are needed for the merge operation. Reviewers: bogner Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6065 llvm-svn: 221032
52 lines
1.7 KiB
C++
52 lines
1.7 KiB
C++
//=-- SampleProf.cpp - Sample profiling format support --------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains common definitions used in the reading and writing of
|
|
// sample profile data.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/ProfileData/SampleProf.h"
|
|
#include "llvm/Support/ErrorHandling.h"
|
|
#include "llvm/Support/ManagedStatic.h"
|
|
|
|
using namespace llvm;
|
|
|
|
namespace {
|
|
class SampleProfErrorCategoryType : public std::error_category {
|
|
const char *name() const LLVM_NOEXCEPT override { return "llvm.sampleprof"; }
|
|
std::string message(int IE) const override {
|
|
sampleprof_error E = static_cast<sampleprof_error>(IE);
|
|
switch (E) {
|
|
case sampleprof_error::success:
|
|
return "Success";
|
|
case sampleprof_error::bad_magic:
|
|
return "Invalid file format (bad magic)";
|
|
case sampleprof_error::unsupported_version:
|
|
return "Unsupported format version";
|
|
case sampleprof_error::too_large:
|
|
return "Too much profile data";
|
|
case sampleprof_error::truncated:
|
|
return "Truncated profile data";
|
|
case sampleprof_error::malformed:
|
|
return "Malformed profile data";
|
|
case sampleprof_error::unrecognized_format:
|
|
return "Unrecognized profile encoding format";
|
|
}
|
|
llvm_unreachable("A value of sampleprof_error has no message.");
|
|
}
|
|
};
|
|
}
|
|
|
|
static ManagedStatic<SampleProfErrorCategoryType> ErrorCategory;
|
|
|
|
const std::error_category &llvm::sampleprof_category() {
|
|
return *ErrorCategory;
|
|
}
|