lightning
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Lightning] GNU Ligntining TODO -- next steps


From: Paulo César Pereira de Andrade
Subject: [Lightning] GNU Ligntining TODO -- next steps
Date: Fri, 11 Sep 2015 00:05:14 -0300

  Hi,

  I was a bit slow on the past few months with development of
Lightning. But I can assure it is still going well, and I have
plenty of plans of how to make it better :)

  Currently, my next goal would be to make a simple abstraction
to create/remove a local block of stack variables. That would
support abstractions like, in pseudo C code:
{
    local word a, b;
    do-something_with(a, b);
} // a and b no longer in scope, and stack storage released
Deallocation would be somewhat like a reverse of jit_allocar.

  Other features would be support for AOT compilation. Currently
it is possible, not trivial, and needs patching of addresses
resolved outside of lightning when loading code from disk.

  Another possible extension is to let lightning know about
data types, like structures, and add support for local and
global variables. This could be an extra library, or extra
opcodes, for example, jit_addv(v1, v2, v3); where arguments
would be a third data type, that can be either a register or
immediate, and lightning would ensure are properly spill/reloaded
if required.
  After adding support for variables (for example, an hypotetic
jit_value_t, support for gdb is more reliable and/or doable).

  An internal disassembler could also be added, and this way,
remove need for binutils-dev* for better debug options.

  Another issue, very high on my TODO list is a backend
specific optimization pass. At first, would be a combine
pass.
  So far, my goal was to make it friendly to jit generation of
languages that will properly handle overflows, converting
it to mpz_t (or other big integer type), but support for 32
bit operations on 64 bit arches may be desirable (on ix86
even 8 or 16 bit operations may be desirable...).

  BTW, if you read this far, maybe you can help me :) I need
access to some computers to do extra development keeping
the current supported cpu set; I delayed some changes
waiting for snakebite.net. Unfortunately, snakebite.net appears
to have gone off-line, and I have no longer access to alpha,
hppa and sun hosts. I already develop for several cpus on
emulators, so, I will try to build emulation environments where
possible/applicable anyway.

Thanks,
Paulo



reply via email to

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