[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
guile 3 update: lowered conditionals
From: |
Andy Wingo |
Subject: |
guile 3 update: lowered conditionals |
Date: |
Mon, 30 Oct 2017 15:26:55 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hi,
An update on the Guile 3 effort. Since last week I attacked the
conditional instructions, replacing e.g. "br-if-< A B OFFSET" with a
sequence of "<? A B" then "jl OFFSET". If you are following along at
home, I recommend this sequence:
git pull
git reset --hard 17cb3214558f88ee7923ba28a72cdd3afd919670
make -j4
make -C prebuilt clean
make -C prebuilt -jn
make -C bootstrap clean
make -C module clean
make -C guile-readline clean
make -j4
git pull
make -j4
make -C prebuilt -j4
This will rebuild everything with the new instructions, but at a point
when the old instructions haven't been removed yet so your old .go files
are valid (assuming you've built master in the last couple months or
so). Then it updates to master where the old instructions are removed
and does a quick build to update the VM and the assembler/disassembler.
Or you can do a fresh complete rebuild. That's possible too but it
takes a little while :)
Anyway, things are a bit slower, as expected: there are more
instructions and things aren't entirely optimized; notably there are
some immediate instruction variants that aren't quite there yet. But
things are going in the right direction I think and the compiler is
getting smarter about reasoning about value representations, allowing it
to fold more code.
I reckon we are about 100 or 150 hack-hours away from a complete
migration of Guile master to new instructions. I probably have that
much available between now and the end of the year, so that's the
timeline. Once things are migrated, I'll tweak things so the bytecode
is tight, then start work on a template method JIT.
Andy
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- guile 3 update: lowered conditionals,
Andy Wingo <=