diff --git a/Include/internal/pycore_jit.h b/Include/internal/pycore_jit.h index 5e59f520c32b73..4d6cc35a7a3de7 100644 --- a/Include/internal/pycore_jit.h +++ b/Include/internal/pycore_jit.h @@ -11,7 +11,7 @@ extern "C" { #ifdef _Py_JIT -typedef _Py_CODEUNIT *(*jit_func_native)(_PyInterpreterFrame *frame, _PyStackRef *stack_pointer, PyThreadState *tstate); +typedef _Py_CODEUNIT *(*jit_func)(_PyInterpreterFrame *frame, _PyStackRef *stack_pointer, PyThreadState *tstate); int _PyJIT_Compile(_PyExecutorObject *executor, const _PyUOpInstruction *trace, size_t length); void _PyJIT_Free(_PyExecutorObject *executor); diff --git a/Python/ceval_macros.h b/Python/ceval_macros.h index 3bf3eea1cc0170..c111255016f512 100644 --- a/Python/ceval_macros.h +++ b/Python/ceval_macros.h @@ -378,7 +378,7 @@ _PyFrame_SetStackPointer(frame, stack_pointer) #define GOTO_TIER_TWO(EXECUTOR) \ do { \ OPT_STAT_INC(traces_executed); \ - jit_func_native jitted = (EXECUTOR)->jit_code; \ + jit_func jitted = (EXECUTOR)->jit_code; \ next_instr = jitted(frame, stack_pointer, tstate); \ Py_DECREF(tstate->previous_executor); \ tstate->previous_executor = NULL; \ diff --git a/Tools/jit/_targets.py b/Tools/jit/_targets.py index 6bf3ec109a252c..634208da3c8157 100644 --- a/Tools/jit/_targets.py +++ b/Tools/jit/_targets.py @@ -140,8 +140,7 @@ async def _compile( f"{c}", *self.args, ] - args_o = args + ["-o", f"{o}", f"{c}"] - await _llvm.run("clang", args_o, echo=self.verbose) + await _llvm.run("clang", args, echo=self.verbose) return await self._parse(o) async def _build_stencils(self) -> dict[str, _stencils.StencilGroup]: diff --git a/Tools/jit/jit.h b/Tools/jit/jit.h index 719b76c514e5c9..3f7f9e7dab3653 100644 --- a/Tools/jit/jit.h +++ b/Tools/jit/jit.h @@ -1,4 +1,4 @@ // To use preserve_none in JIT builds, we need to declare a separate function // pointer with __attribute__((preserve_none)), since this attribute may not be // supported by the compiler used to build the rest of the interpreter. -typedef _Py_CODEUNIT *(*jit_func_preserve_none)(_PyInterpreterFrame *frame, _PyStackRef *stack_pointer, PyThreadState *tstate) __attribute__((preserve_none)); +typedef jit_func __attribute__((preserve_none)) jit_func_preserve_none; \ No newline at end of file