LLVM - Low Level Virtual Machine

LLVM Wyvern Logo

LLVM - Low Level Virtual Machine LLVM è un insieme di tecnologie per compilatori che possono essere utilizzate per sviluppare un frontend per qualsiasi linguaggio di programmazione e un backend per qualsiasi architettura hardware. LLVM è progettato per usare una rappresentazione intermedia (IR) indipendente dal linguaggio che funge da assembly portabile di alto livello, e può essere ottimizzata con una serie di trasformazioni.

LLVM è scritto in C++ ed è progettato per l'ottimizzazione a compile-time, link-time, run-time e “idle-time”. E' stato progettato in modo da essere indipendente dai linguaggi e ha dato vita a un'ampia varietà di frontend, ad esempio: ActionScript, Ada, C# per .NET, Common Lisp, CUDA, D, Delphi, Forth, Fortran, FreeBASIC, Free Pascal, Halide, Haskell, Java bytecode, Julia, Kotlin, il linguaggio G di LabVIEW, Lua, Objective-C, OpenCL, PostgreSQL SQL e PLpgSQL, Ruby, Rust, Scala, Swift, Xojo e Zig.

E' il segreto che fa funzionare RPCS3 così velocemente. All'inizio dell'emulazione LLVM ricompila tutto il codice delle PPU originali del processore di PS3 in codice nativo, successivamente, quindi, riesce ad eseguire tutte le elaborazioni che fanno uso intensivo dell'architettura PPU direttamente su una architettura X86 (o altra ancora).

★ compiler explorer
reddit

LLVM tutorial
LLVM Programmer’s Manual
LLVM Language Reference Manual

[via]

Add new comment

The content of this field is kept private and will not be shown publicly.

Full HTML 2

  • Web page addresses and email addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Filtered HTML

  • Web page addresses and email addresses turn into links automatically.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type='1 A I'> <li> <dl> <dt> <dd> <h2 id='jump-*'> <h3 id> <h4 id> <h5 id> <h6 id>
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.