diff options
Diffstat (limited to 'llvm/tools/llvm-xray/xray-account.cpp')
-rw-r--r-- | llvm/tools/llvm-xray/xray-account.cpp | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/llvm/tools/llvm-xray/xray-account.cpp b/llvm/tools/llvm-xray/xray-account.cpp index 24a3552..5168aa1 100644 --- a/llvm/tools/llvm-xray/xray-account.cpp +++ b/llvm/tools/llvm-xray/xray-account.cpp @@ -118,18 +118,16 @@ static cl::opt<std::string> static cl::alias AccountInstrMap2("m", cl::aliasopt(AccountInstrMap), cl::desc("Alias for -instr_map")); -namespace { - -template <class T, class U> void setMinMax(std::pair<T, T> &MM, U &&V) { +template <class T, class U> static void setMinMax(std::pair<T, T> &MM, U &&V) { if (MM.first == 0 || MM.second == 0) MM = std::make_pair(std::forward<U>(V), std::forward<U>(V)); else MM = std::make_pair(std::min(MM.first, V), std::max(MM.second, V)); } -template <class T> T diff(T L, T R) { return std::max(L, R) - std::min(L, R); } - -} // namespace +template <class T> static T diff(T L, T R) { + return std::max(L, R) - std::min(L, R); +} using RecursionStatus = LatencyAccountant::FunctionStack::RecursionStatus; RecursionStatus &RecursionStatus::operator++() { @@ -143,6 +141,7 @@ RecursionStatus &RecursionStatus::operator++() { true); // Storage |= INT_MIN return *this; } + RecursionStatus &RecursionStatus::operator--() { auto Depth = Bitfield::get<RecursionStatus::Depth>(Storage); assert(Depth > 0); @@ -153,6 +152,7 @@ RecursionStatus &RecursionStatus::operator--() { Bitfield::set<RecursionStatus::IsRecursive>(Storage, false); // Storage = 0 return *this; } + bool RecursionStatus::isRecursive() const { return Bitfield::get<RecursionStatus::IsRecursive>(Storage); // Storage s< 0 } @@ -270,8 +270,9 @@ struct ResultRow { std::string DebugInfo; std::string Function; }; +} // namespace -ResultRow getStats(MutableArrayRef<uint64_t> Timings) { +static ResultRow getStats(MutableArrayRef<uint64_t> Timings) { assert(!Timings.empty()); ResultRow R; R.Sum = std::accumulate(Timings.begin(), Timings.end(), 0.0); @@ -296,8 +297,6 @@ ResultRow getStats(MutableArrayRef<uint64_t> Timings) { return R; } -} // namespace - using TupleType = std::tuple<int32_t, uint64_t, ResultRow>; template <typename F> @@ -417,11 +416,8 @@ void LatencyAccountant::exportStatsAsCSV(raw_ostream &OS, }); } -using namespace llvm::xray; - -namespace llvm { -template <> struct format_provider<llvm::xray::RecordTypes> { - static void format(const llvm::xray::RecordTypes &T, raw_ostream &Stream, +template <> struct llvm::format_provider<RecordTypes> { + static void format(const RecordTypes &T, raw_ostream &Stream, StringRef Style) { switch (T) { case RecordTypes::ENTER: @@ -445,7 +441,6 @@ template <> struct format_provider<llvm::xray::RecordTypes> { } } }; -} // namespace llvm static CommandRegistration Unused(&Account, []() -> Error { InstrumentationMap Map; @@ -468,10 +463,10 @@ static CommandRegistration Unused(&Account, []() -> Error { const auto &FunctionAddresses = Map.getFunctionAddresses(); symbolize::LLVMSymbolizer Symbolizer; - llvm::xray::FuncIdConversionHelper FuncIdHelper(AccountInstrMap, Symbolizer, - FunctionAddresses); - xray::LatencyAccountant FCA(FuncIdHelper, AccountRecursiveCallsOnly, - AccountDeduceSiblingCalls); + FuncIdConversionHelper FuncIdHelper(AccountInstrMap, Symbolizer, + FunctionAddresses); + LatencyAccountant FCA(FuncIdHelper, AccountRecursiveCallsOnly, + AccountDeduceSiblingCalls); auto TraceOrErr = loadTraceFile(AccountInput); if (!TraceOrErr) return joinErrors( |