Skip to content

Commit 2295ecc

Browse files
committed
Improve box/unbox logging
1 parent 61d1ce2 commit 2295ecc

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

mypyc/transform/log_trace.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
Unbox,
2525
Value,
2626
)
27+
from mypyc.ir.rtypes import none_rprimitive
2728
from mypyc.irbuild.ll_builder import LowLevelIRBuilder
2829
from mypyc.options import CompilerOptions
2930
from mypyc.primitives.misc_ops import log_trace_event
@@ -86,10 +87,14 @@ def visit_set_attr(self, op: SetAttr) -> Value | None:
8687
return self.log(op, name, f"{op.class_type.name}.{op.attr}")
8788

8889
def visit_box(self, op: Box) -> Value | None:
89-
return self.log(op, "box", op.src.type.name)
90+
if op.src.type is none_rprimitive:
91+
# Boxing 'None' is a very quick operation, so we don't log it.
92+
return self.add(op)
93+
else:
94+
return self.log(op, "box", str(op.src.type))
9095

9196
def visit_unbox(self, op: Unbox) -> Value | None:
92-
return self.log(op, "unbox", op.type.name)
97+
return self.log(op, "unbox", str(op.type))
9398

9499
def log(self, op: Op, name: str, details: str) -> Value:
95100
if op.line >= 0:

0 commit comments

Comments
 (0)