281
edits
No edit summary |
(Update) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
This page should help interested persons | This page should help interested persons who want to start hacking on the JIT implementation in octave. It's '''NOT''' intended for octave users. | ||
Thanks to Max Brister's work for GSoC 2012, an initial implement of a just-in-time compiler (JITC) was coded in LLVM. [https://web.archive.org/web/20220124015319/http://planet.octave.org/octconf2012/jit.pdf Here] is Max's [[OctConf 2012]] presentation about his implementation. | |||
The JIT was removed from Octave sources in 2021, see [http://hg.savannah.gnu.org/hgweb/octave/rev/f254c302bb9c here] for the details and justification. It can still be accessed by looking at an older revision of the Octave repository. | |||
=== Recommended reading === | === Recommended reading === | ||
Line 27: | Line 29: | ||
*jit-util.cc (& jit-util.h) | *jit-util.cc (& jit-util.h) | ||
I haven't gone through all parts of the code yet and | I haven't gone through all parts of the code yet and don't understand a lot of it, but my first impression is that it feels like more of a text dump. The various parts need to be separated into different files based on functionality. The current files are a tad too big IMHO. Right now all of the jit parts are in 4 files(+4 header files) which are quite large and a lot of it has no documentation to explain how the different parts come together. | ||
To be fair my impressions/opinions are that of a beginner level user and you are welcome to have a look and post your own comments. | To be fair my impressions/opinions are that of a beginner level user and you are welcome to have a look and post your own comments. | ||
=== LLVM Compatibility === | |||
It seems that LLVM APIs change on a fairly regular basis and this creates build issues for Octave. See [https://savannah.gnu.org/bugs/?41061 Octave fails to build with LLVM 3.5] | |||
{| class="wikitable" | |||
|- | |||
! Octave Version | |||
! LLVM Version | |||
! Successful Build (Y/N) | |||
|- | |||
| 3.8 | |||
| 3.3 | |||
| Y | |||
|- | |||
| 3.8 | |||
| 3.4.2 | |||
| N | |||
|} | |||
[[Category:Development]] | [[Category:Development]] |
edits