diff options
| author | 2026-10-14 16:02:22 +0330 | |
|---|---|---|
| committer | 2026-10-14 16:02:22 +0330 | |
| commit | b43d75a987836ee192d62e5c970cc16a143f8efd (patch) | |
| tree | 206812e4462eb106da6dab9d2b4589b4da870f5a /TODO.md | |
| parent | make: build zy with the llvm backend when an llvm with headers is found; NOLL... (diff) | |
make: keep the x86-64 jit by default (LLVM=1 opts in), record the llvm mode so switching rebuilds zy, check llvm with a test link
Diffstat (limited to 'TODO.md')
| -rw-r--r-- | TODO.md | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -241,13 +241,16 @@ the reasoning behind the open items survives the session. translation validation of each compile over proving the compiler whole. - native code: the hand-written jit exists for arm64 and (phase 1, no o3 regions or inlined enhancements yet) x86-64 linux; the llvm backend - (`-DZYLLVM`) is the portable native tier, and `make` now puts it in `zy` - whenever `llvm-config` or `llvm-config-19` with headers is found - (`NOLLVM=1` turns it off; without llvm the build prints a note and goes on). - checked on x86-64 with llvm 19: the fixpoint with llvm, without llvm on - `PATH`, and with `NOLLVM=1`, and `tests/test.sh --section llvm` (149 ok). - open: `-DZYLLVM` replaces the x86-64 jit, so the default x86-64 `zy` now - uses llvm rather than the hand-written jit; decide whether that is wanted. the x86-64 port of the hand-written jit is worth it for compile + (`-DZYLLVM`) is the portable native tier. `make` puts it in `zy` on + non-x86_64 hosts whenever a usable llvm is found (`NOLLVM=1` turns it off); + on x86_64 it stays out unless `LLVM=1`, because `-DZYLLVM` replaces the + x86-64 jit (owner's call: keep the jit as the x86-64 default). usable means + `llvm-config` or `llvm-config-19` with `llvm-c/Core.h`, non-empty `--libs` + and a tiny test link; otherwise a one-line note. `build/llvm.mode` (llvm or + nollvm, rewritten only on change) makes switching rebuild `zy` without a + clean. checked on x86_64 with llvm 19: plain make uses the jit (no llvm + regions on o3.zc) and reaches the fixpoint, `make LLVM=1` rebuilds zy with + 8 llvm regions, plain make switches back. the non-x86_64 path is untested. the x86-64 port of the hand-written jit is worth it for compile latency (microseconds per block against milliseconds for llvm), which matters for short programs and the language server. |
