From 8bab07ed72f0c89ad07050cdb9deaba2740db2c0 Mon Sep 17 00:00:00 2001 From: Pragyansh Chaturvedi Date: Fri, 10 Oct 2025 00:13:35 +0530 Subject: [PATCH] Remove recursive_dereferencer --- pythonbpf/binary_ops.py | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/pythonbpf/binary_ops.py b/pythonbpf/binary_ops.py index 690a4e3..ccd51f8 100644 --- a/pythonbpf/binary_ops.py +++ b/pythonbpf/binary_ops.py @@ -6,19 +6,6 @@ import logging logger: Logger = logging.getLogger(__name__) -def recursive_dereferencer(var, builder): - """dereference until primitive type comes out""" - # TODO: Not worrying about stack overflow for now - logger.info(f"Dereferencing {var}, type is {var.type}") - if isinstance(var.type, ir.PointerType): - a = builder.load(var) - return recursive_dereferencer(a, builder) - elif isinstance(var.type, ir.IntType): - return var - else: - raise TypeError(f"Unsupported type for dereferencing: {var.type}") - - def deref_to_val(var, builder): """Dereference a variable to get its value and pointer chain.""" logger.info(f"Dereferencing {var}, type is {var.type}") @@ -58,8 +45,8 @@ def get_operand_value(operand, builder, local_sym_tab): def handle_binary_op_impl(rval, builder, local_sym_tab): op = rval.op - left = get_operand_value(rval.left, builder, local_sym_tab) - right = get_operand_value(rval.right, builder, local_sym_tab) + left, _, _ = get_operand_value(rval.left, builder, local_sym_tab) + right, _, _ = get_operand_value(rval.right, builder, local_sym_tab) logger.info(f"left is {left}, right is {right}, op is {op}") # Map AST operation nodes to LLVM IR builder methods