llvm-harness: add optional NYASH_LLVM_TRACE_CALLS to print mir_call callee (includes Method.certainty) for diagnostics; no behavior change
This commit is contained in:
@ -35,6 +35,25 @@ def lower_mir_call(owner, builder: ir.IRBuilder, mir_call: Dict[str, Any], dst_v
|
||||
# Parse callee type
|
||||
callee_type = callee.get("type")
|
||||
|
||||
# Optional trace: dump callee info (including certainty for Method)
|
||||
if os.getenv('NYASH_LLVM_TRACE_CALLS') == '1':
|
||||
try:
|
||||
evt = { 'type': callee_type }
|
||||
if callee_type == 'Global':
|
||||
evt.update({'name': callee.get('name')})
|
||||
elif callee_type == 'Method':
|
||||
evt.update({
|
||||
'box_name': callee.get('box_name'),
|
||||
'method': callee.get('method'),
|
||||
'receiver': callee.get('receiver'),
|
||||
'certainty': callee.get('certainty'),
|
||||
})
|
||||
elif callee_type == 'Extern':
|
||||
evt.update({'name': callee.get('name')})
|
||||
print(json.dumps({'phase':'llvm','cat':'mir_call','event':evt}))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
if callee_type == "Global":
|
||||
# Global function call (e.g., print, panic)
|
||||
func_name = callee.get("name")
|
||||
@ -633,4 +652,4 @@ def lower_extern_call(builder, module, extern_name, args, dst_vid, vmap, resolve
|
||||
if isinstance(ret_type, ir.VoidType):
|
||||
vmap[dst_vid] = ir.Constant(i64, 0)
|
||||
else:
|
||||
vmap[dst_vid] = result
|
||||
vmap[dst_vid] = result
|
||||
|
||||
Reference in New Issue
Block a user