mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-14 23:48:49 +00:00
6e1f066adf
This is the second part of a multi-part change to define additional subcommands to the `llvm-xray` tool. This change defines a conversion subcommand to take XRay log files, and turns them from one format to another (binary or YAML). This currently only supports the first version of the log file format, defined in the compiler-rt runtime. Depends on D21987. Reviewers: dblaikie, echristo Subscribers: mehdi_amini, dberris, beanz, llvm-commits Differential Revision: https://reviews.llvm.org/D24376 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291529 91177308-0d34-0410-b5e6-96231b3b80d8
50 lines
1.6 KiB
C++
50 lines
1.6 KiB
C++
//===- func-id-helper.h - XRay Function ID Conversion Helpers -------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Defines helper tools dealing with XRay-generated function ids.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
#ifndef LLVM_TOOLS_LLVM_XRAY_FUNC_ID_HELPER_H
|
|
#define LLVM_TOOLS_LLVM_XRAY_FUNC_ID_HELPER_H
|
|
|
|
#include "llvm/DebugInfo/Symbolize/Symbolize.h"
|
|
#include <unordered_map>
|
|
|
|
namespace llvm {
|
|
namespace xray {
|
|
|
|
// This class consolidates common operations related to Function IDs.
|
|
class FuncIdConversionHelper {
|
|
public:
|
|
using FunctionAddressMap = std::unordered_map<int32_t, uint64_t>;
|
|
|
|
private:
|
|
std::string BinaryInstrMap;
|
|
symbolize::LLVMSymbolizer &Symbolizer;
|
|
const FunctionAddressMap &FunctionAddresses;
|
|
|
|
public:
|
|
FuncIdConversionHelper(std::string BinaryInstrMap,
|
|
symbolize::LLVMSymbolizer &Symbolizer,
|
|
const FunctionAddressMap &FunctionAddresses)
|
|
: BinaryInstrMap(std::move(BinaryInstrMap)), Symbolizer(Symbolizer),
|
|
FunctionAddresses(FunctionAddresses) {}
|
|
|
|
// Returns the symbol or a string representation of the function id.
|
|
std::string SymbolOrNumber(int32_t FuncId) const;
|
|
|
|
// Returns the file and column from debug info for the given function id.
|
|
std::string FileLineAndColumn(int32_t FuncId) const;
|
|
};
|
|
|
|
} // namespace xray
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_TOOLS_LLVM_XRAY_FUNC_ID_HELPER_H
|