def _alloca_var(self, name, fetype):
        """
        Ensure the given variable has an allocated stack slot (if needed).
        """
        if name in self.varmap:
            # quit early
            return

        # If the name is used in multiple blocks or lowering with debuginfo...
        if ((name not in self._singly_assigned_vars) or
                self._disable_sroa_like_opt):
            # If not already defined, allocate it
            ptr = self.alloca(name, fetype)
            # Remember the pointer
            self.varmap[name] = ptr

        Ensure the given variable has an allocated stack slot (if needed).
        
numba/core/lowering.py