Skip to content

Commit

Permalink
pythongh-127389 - fix 'Uops Executed' display in summarize_stats.py
Browse files Browse the repository at this point in the history
  • Loading branch information
alonme committed Nov 29, 2024
1 parent b83be9c commit 6645fb5
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions Tools/scripts/summarize_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@


TOTAL = "specialization.hit", "specialization.miss", "execution_count"
UOPS_EXECUTED_LABEL = "Uops executed"


def pretty(name: str) -> str:
Expand Down Expand Up @@ -313,7 +314,7 @@ def kind_to_text(kind: int, opcode: str):
def is_specializable(self, opcode: str) -> bool:
return "specializable" in self._get_stats_for_opcode(opcode)

def get_specialized_total_counts(self) -> tuple[int, int, int]:
def get_specialized_total_counts(self) -> tuple[int, int, int, int]:
basic = 0
specialized_hits = 0
specialized_misses = 0
Expand Down Expand Up @@ -442,7 +443,7 @@ def get_gc_stats(self) -> list[dict[str, int]]:
gc_stats[gen_n][name] = value
return gc_stats

def get_optimization_stats(self) -> dict[str, tuple[int, int | None]]:
def get_optimization_stats(self) -> dict[Doc, tuple[int, int | None]]:
if "Optimization attempts" not in self._data:
return {}

Expand Down Expand Up @@ -483,7 +484,7 @@ def get_optimization_stats(self) -> dict[str, tuple[int, int | None]]:
): (trace_too_long, attempts),
Doc(
"Trace too short",
"A potential trace is abandoced because it it too short.",
"A potential trace is abandoned because it it too short.",
): (trace_too_short, attempts),
Doc(
"Inner loop found", "A trace is truncated because it has an inner loop"
Expand All @@ -507,15 +508,15 @@ def get_optimization_stats(self) -> dict[str, tuple[int, int | None]]:
None,
),
Doc(
"Uops executed",
UOPS_EXECUTED_LABEL,
"The total number of uops (micro-operations) that were executed",
): (
uops,
executed,
),
}

def get_optimizer_stats(self) -> dict[str, tuple[int, int | None]]:
def get_optimizer_stats(self) -> dict[Doc, tuple[int, int | None]]:
attempts = self._data["Optimization optimizer attempts"]
successes = self._data["Optimization optimizer successes"]
no_memory = self._data["Optimization optimizer failure no memory"]
Expand Down Expand Up @@ -1140,14 +1141,13 @@ def calc_gc_stats(stats: Stats) -> Rows:
def optimization_section() -> Section:
def calc_optimization_table(stats: Stats) -> Rows:
optimization_stats = stats.get_optimization_stats()

return [
(
label,
doc,
Count(value),
Ratio(value, den, percentage=label != "Uops executed"),
Ratio(value, den, percentage=doc.text != UOPS_EXECUTED_LABEL),
)
for label, (value, den) in optimization_stats.items()
for doc, (value, den) in optimization_stats.items()
]

def calc_optimizer_table(stats: Stats) -> Rows:
Expand Down Expand Up @@ -1264,7 +1264,7 @@ def iter_optimization_tables(base_stats: Stats, head_stats: Stats | None = None)


def rare_event_section() -> Section:
def calc_rare_event_table(stats: Stats) -> Table:
def calc_rare_event_table(stats: Stats) -> Rows:
DOCS = {
"set class": "Setting an object's class, `obj.__class__ = ...`",
"set bases": "Setting the bases of a class, `cls.__bases__ = ...`",
Expand Down Expand Up @@ -1395,7 +1395,7 @@ def to_markdown(x):
print("Stats gathered on:", date.today(), file=out)


def output_stats(inputs: list[Path], json_output=str | None):
def output_stats(inputs: list[Path], json_output: str | None):
match len(inputs):
case 1:
data = load_raw_data(Path(inputs[0]))
Expand Down

0 comments on commit 6645fb5

Please sign in to comment.