Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  block-range.h

  Sprache: C
 

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __PERF_BLOCK_RANGE_H
#define __PERF_BLOCK_RANGE_H

#include <stdbool.h>
#include <linux/rbtree.h>
#include <linux/types.h>

struct symbol;

/*
 * struct block_range - non-overlapping parts of basic blocks
 * @node: treenode
 * @start: inclusive start of range
 * @end: inclusive end of range
 * @is_target: @start is a jump target
 * @is_branch: @end is a branch instruction
 * @coverage: number of blocks that cover this range
 * @taken: number of times the branch is taken (requires @is_branch)
 * @pred: number of times the taken branch was predicted
 */

struct block_range {
 struct rb_node node;

 struct symbol *sym;

 u64 start;
 u64 end;

 int is_target, is_branch;

 u64 coverage;
 u64 entry;
 u64 taken;
 u64 pred;
};

static inline struct block_range *block_range__next(struct block_range *br)
{
 struct rb_node *n = rb_next(&br->node);
 if (!n)
  return NULL;
 return rb_entry(n, struct block_range, node);
}

struct block_range_iter {
 struct block_range *start;
 struct block_range *end;
};

static inline struct block_range *block_range_iter(struct block_range_iter *iter)
{
 return iter->start;
}

static inline bool block_range_iter__next(struct block_range_iter *iter)
{
 if (iter->start == iter->end)
  return false;

 iter->start = block_range__next(iter->start);
 return true;
}

static inline bool block_range_iter__valid(struct block_range_iter *iter)
{
 if (!iter->start || !iter->end)
  return false;
 return true;
}

extern struct block_range *block_range__find(u64 addr);
extern struct block_range_iter block_range__create(u64 start, u64 end);
extern double block_range__coverage(struct block_range *br);

#endif /* __PERF_BLOCK_RANGE_H */

Messung V0.5 in Prozent
C=97 H=93 G=94

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-06-07) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002