From 66a683b07ee8d0b0bb47be5303ce59afd294b819 Mon Sep 17 00:00:00 2001 From: Siu Kwan Lam <1929845+sklam@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:41:21 -0500 Subject: [PATCH] Try not storing call_conv in generators and lower --- numba/core/generators.py | 6 +++++- numba/core/lowering.py | 33 ++++----------------------------- 2 files changed, 9 insertions(+), 30 deletions(-) diff --git a/numba/core/generators.py b/numba/core/generators.py index 6060d160c3b..88456bdabb0 100644 --- a/numba/core/generators.py +++ b/numba/core/generators.py @@ -54,8 +54,8 @@ def __init__(self, lower): self.context = lower.context self.fndesc = lower.fndesc self.library = lower.library - self.call_conv = lower.call_conv self.func_ir = lower.func_ir + self.lower = lower self.geninfo = lower.generator_info self.gentype = self.get_generator_type() @@ -66,6 +66,10 @@ def __init__(self, lower): self.resume_blocks = {} + @property + def call_conv(self): + return self.lower.call_conv + def get_args_ptr(self, builder, genptr): return cgutils.gep_inbounds(builder, genptr, 0, 1) diff --git a/numba/core/lowering.py b/numba/core/lowering.py index 1599dd31cde..7ade50275ec 100644 --- a/numba/core/lowering.py +++ b/numba/core/lowering.py @@ -31,7 +31,6 @@ def __init__(self, context, library, fndesc, func_ir, metadata=None): self.fndesc = fndesc self.blocks = utils.SortedMap(func_ir.blocks.items()) self.func_ir = func_ir - self.call_conv = context.call_conv self.generator_info = func_ir.generator_info self.metadata = metadata self.flags = targetconfig.ConfigStack.top_or_none() @@ -71,6 +70,10 @@ def __init__(self, context, library, fndesc, func_ir, metadata=None): # Subclass initialization self.init() + @property + def call_conv(self): + return self.context.call_conv + def init(self): pass @@ -137,12 +140,6 @@ def post_block(self, block): Called after lowering a block. """ - def return_dynamic_exception(self, exc_class, exc_args, nb_types, loc=None): - self.call_conv.return_dynamic_user_exc( - self.builder, exc_class, exc_args, nb_types, - loc=loc, func_name=self.func_ir.func_id.func_name, - ) - def return_exception(self, exc_class, exc_args=None, loc=None): """Propagate exception to the caller. """ @@ -563,9 +560,6 @@ def lower_inst(self, inst): elif isinstance(inst, ir.StaticRaise): self.lower_static_raise(inst) - elif isinstance(inst, ir.DynamicRaise): - self.lower_dynamic_raise(inst) - elif isinstance(inst, ir.StaticTryRaise): self.lower_static_try_raise(inst) @@ -603,25 +597,6 @@ def lower_setitem(self, target_var, index_var, value_var, signature): return impl(self.builder, (target, index, value)) - def lower_dynamic_raise(self, inst): - exc_args = inst.exc_args - args = [] - nb_types = [] - for exc_arg in exc_args: - if isinstance(exc_arg, ir.Var): - # dynamic values - typ = self.typeof(exc_arg.name) - val = self.loadvar(exc_arg.name) - self.incref(typ, val) - else: - typ = None - val = exc_arg - nb_types.append(typ) - args.append(val) - - self.return_dynamic_exception(inst.exc_class, tuple(args), - tuple(nb_types), loc=self.loc) - def lower_static_raise(self, inst): if inst.exc_class is None: # Reraise