2015-03-03 8 views
5

SICStus Prolog 4.3 ha aggiunto un compilatore JIT per processori x86-64.SICStus Prolog Compilatore JIT

Ho due domande relative al compilatore JIT.

Innanzitutto, dove posso trovare della documentazione (documenti, note o memo) sulle funzionalità (e limitazioni, progettazione e tecniche) del compilatore JIT?

E in secondo luogo, è possibile indirizzare SICStus al codice assembly x86-64 prodotto dal compilatore JIT?

+0

Doc ufficiale contiene alcune informazioni su JIT https://sicstus.sics.se/sicstus/docs/latest4/pdf/sicstus.pdf (ricerca per JIT), 4.3.1 Panoramica ... Alcune statistiche e l'ottimizzazione sono descritte ... – osgx

+0

Ero già a conoscenza delle parti rispettive del manuale di SICStus Prolog ... Ho utilizzato le variabili di ambiente per accendere e spegnere il compilatore JIT nei micro-benchmark che ho fatto. – repeat

+0

Con strace è possibile vedere l'allocazione della memoria per il codice jitted ('mmap's o' mprotect's con flag PROT_EXEC), e inoltre è possibile controllare/proc/PID/maps (o smaps; PID è pid del processo SICStus attivo) e cercare i segmenti di memoria con il flag x (exec). Ma queste informazioni ti permetteranno solo di scaricare il codice jitted (ad esempio con gdb, breakpointing su mmap/mprotects con PROT_EXEC e guardare le scritture sui segmenti; [dumping the mem] (http://serverfault.com/questions/173999/) ; possibilmente smontando il codice macchina), ma non per trovare documentazione, documenti, brevetti; nessuna informazione diretta sulle limitazioni ... – osgx

risposta

3

Non sono disponibili informazioni pubbliche sull'implementazione SICIT di SICStus Prolog.

È possibile ottenere alcune informazioni da perf in Linux se si seguono le istruzioni in library/perf/sp_jit_objdump nell'installazione di SICStus. Tra le altre cose, perf può mostrare lo smontaggio del codice jitted.