guile-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]