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
|
# Parse callee type
|
||||||
callee_type = callee.get("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":
|
if callee_type == "Global":
|
||||||
# Global function call (e.g., print, panic)
|
# Global function call (e.g., print, panic)
|
||||||
func_name = callee.get("name")
|
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):
|
if isinstance(ret_type, ir.VoidType):
|
||||||
vmap[dst_vid] = ir.Constant(i64, 0)
|
vmap[dst_vid] = ir.Constant(i64, 0)
|
||||||
else:
|
else:
|
||||||
vmap[dst_vid] = result
|
vmap[dst_vid] = result
|
||||||
|
|||||||
Reference in New Issue
Block a user