Lines Matching defs:LBR
88 // Filter out the case when leaf external frame matches the external LBR
97 // Range is invalid if only one point is external address. This means LBR
107 // Skip unwinding the rest of LBR trace when a bogus range is seen.
154 const LBREntry &LBR = State.getCurrentLBR();
155 uint64_t CallAddr = Binary->getCallAddrFromFrameAddr(LBR.Target);
157 State.pushFrame(LBR.Source);
158 State.InstPtr.update(LBR.Source);
286 // Sanity check - making sure leaf of LBR aligns with leaf of stack sample
292 // Now process the LBR samples in parrallel with stack sample
293 // Note that we do not reverse the LBR entry order so we can
294 // unwind the sample stack as we walk through LBR entries.
305 // Save the LBR branch before it gets unwound.
308 // Unwind calls - we know we encountered call if LBR overlaps with
321 // Skip unwinding the rest of LBR trace. Reset the stack and update the
364 } else if (PerfInput.Content == PerfContent::LBR) {
581 // The raw format of LBR stack is like:
588 WithColor::warning() << "Invalid address in LBR record at line "
605 // Now extract LBR samples - note that we do not reverse the
606 // LBR entry order so we can unwind the sample stack as we walk
607 // through LBR entries.
618 // Stop at broken LBR records.
634 // Filter external-to-external case to reduce LBR trace size.
698 // Skip other unrelated line, find the next valid LBR line
731 // intermediately by LBR sample
737 // ... 0x4005c8/0x4005dc/P/-/-/0 # LBR Entries
745 // Skip the next LBR line matched current call stack
754 // Parsing LBR stack and populate into PerfSample.LBRStack
759 // Canonicalize stack leaf to avoid 'random' IP from leaf frame skew LBR
767 // LBR sample is encoded in single line after stack sample
768 exitWithError("'Hybrid perf sample is corrupted, No LBR sample line");
922 for (const LBREntry &LBR : Sample->LBRStack) {
923 uint64_t SourceAddress = LBR.Source;
924 uint64_t TargetAddress = LBR.Target;
933 // If this not the first LBR, update the range count between TO of current
934 // LBR and FROM of next LBR.
946 // Parsing LBR stack and populate into PerfSample.LBRStack
949 // Record LBR only samples by aggregation
955 // There is no context for LBR only sample, so initialize one entry with
1072 // A LBR sample is like:
1106 // ... 0x4005c8/0x4005dc/P/-/-/0 # LBR Entries
1109 // a LBR sample
1130 return PerfContent::LBR;
1172 for (const LBREntry &LBR : Sample->LBRStack) {
1173 uint64_t SourceAddress = LBR.Source;
1174 uint64_t StartAddress = LBR.Target;
1271 "of samples have leading external LBR.");