2015-03-03 12 views
5

SICStus Prolog 4.3 fügte einen JIT-Compiler für x86-64-Prozessoren hinzu.SICStus Prolog JIT-Compiler

Ich habe zwei Fragen zum JIT-Compiler.

Erstens, wo finde ich einige Dokumentationen (Papiere, Notizen oder Memos) zu den Fähigkeiten (und Einschränkungen, Design und Techniken) des JIT-Compilers?

Und zweitens, kann SICStus angewiesen werden, den vom JIT-Compiler erzeugten x86-64-Assemblercode auszugeben?

+0

Offizielles Dokument hat einige Informationen über JIT https://sicstus.sics.se/sicstus/docs/latest4/pdf/sicstus.pdf (Suche nach JIT), 4.3.1 Überblick ... Einige Statistiken und Tuning werden beschrieben ... – osgx

+0

Die entsprechenden Teile des SICStus Prolog-Handbuchs waren mir schon bekannt ... Ich habe die Umgebungsvariablen dazu benutzt, den JIT-Compiler in den Mikro-Benchmarks, die ich gemacht habe, ein- und auszuschalten. – repeat

+0

Mit strace können Sie die Speicherbelegung für Jitted-Code anzeigen ('mmap's oder' mprotect's mit PROT_EXEC Flag), und Sie können auch prüfen/proc/PID/maps (oder smaps; PID ist PID des aktiven SICStus-Prozesses) und suche nach Speichersegmenten mit x (exec) Flag. Aber diese Information erlaubt es Ihnen nur jittered code zu löschen (zum Beispiel mit gdb, breakpointing auf mmap/mprotects mit PROT_EXEC und auf Schreibvorgänge in Segmenten warten; [dumping the mem] (http://serverfault.com/questions/173999/) möglicherweise den Maschinencode zerlegen), aber keine Dokumente, Papiere, Patente finden; keine direkten Informationen zu Einschränkungen ... – osgx

Antwort

3

Es sind keine öffentlichen Informationen zur SICStus Prolog JIT-Implementierung verfügbar.

Sie können einige Informationen von perf in Linux erhalten, wenn Sie den Anweisungen in library/perf/sp_jit_objdump in der SICStus-Installation folgen. Unter anderem kann perf die Demontage des Jitted-Codes zeigen.