Fix windows buildbots building llvm-xray

2 issues:
1 - replaced unix-style pid_t with cross-platform llvm::sys::ProcessInfo::ProcessId 
2 - fixed shadow variable warning in lambda expression

Reviewed by @filcab

llvm-svn: 291760
This commit is contained in:
Simon Pilgrim 2017-01-12 11:13:51 +00:00
parent 3284684dd1
commit 8ed5705719
2 changed files with 13 additions and 8 deletions

View File

@ -428,11 +428,11 @@ static CommandRegistration Unused(&Account, []() -> Error {
xray::InstrumentationMapExtractor Extractor(AccountInstrMap, InstrMapFormat,
Err);
if (auto E = handleErrors(
std::move(Err), [&](std::unique_ptr<StringError> E) -> Error {
if (E->convertToErrorCode() == std::errc::no_such_file_or_directory)
return Error::success();
return Error(std::move(E));
}))
std::move(Err), [&](std::unique_ptr<StringError> SE) -> Error {
if (SE->convertToErrorCode() == std::errc::no_such_file_or_directory)
return Error::success();
return Error(std::move(SE));
}))
return E;
raw_fd_ostream OS(AccountOutput, EC, sys::fs::OpenFlags::F_Text);

View File

@ -19,6 +19,7 @@
#include <vector>
#include "func-id-helper.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/XRay/XRayRecord.h"
@ -28,10 +29,13 @@ namespace xray {
class LatencyAccountant {
public:
typedef std::map<int32_t, std::vector<uint64_t>> FunctionLatencyMap;
typedef std::map<pid_t, std::pair<uint64_t, uint64_t>> PerThreadMinMaxTSCMap;
typedef std::map<llvm::sys::ProcessInfo::ProcessId,
std::pair<uint64_t, uint64_t>>
PerThreadMinMaxTSCMap;
typedef std::map<uint8_t, std::pair<uint64_t, uint64_t>> PerCPUMinMaxTSCMap;
typedef std::vector<std::pair<int32_t, uint64_t>> FunctionStack;
typedef std::map<pid_t, FunctionStack> PerThreadFunctionStackMap;
typedef std::map<llvm::sys::ProcessInfo::ProcessId, FunctionStack>
PerThreadFunctionStackMap;
private:
PerThreadFunctionStackMap PerThreadFunctionStack;
@ -75,7 +79,8 @@ public:
///
bool accountRecord(const XRayRecord &Record);
const FunctionStack *getThreadFunctionStack(pid_t TId) const {
const FunctionStack *
getThreadFunctionStack(llvm::sys::ProcessInfo::ProcessId TId) const {
auto I = PerThreadFunctionStack.find(TId);
if (I == PerThreadFunctionStack.end())
return nullptr;