トップQs
タイムライン
チャット
視点

GNU lightning

実行時にアセンブリコードを生成するライブラリ ウィキペディアから

Remove ads

GNU lightningは実行時にアセンブリ言語コードを生成する自由ソフトウェアライブラリである。2019年9月にリリースされたバージョン2.1.3は、SPARC(32bit)、x86(32bit, 64bit)、MIPSARM(32bit, 64bit)、ia64HPPAPowerPC(32bit)、AlphaS390RISC-V(64bit)のバックエンドをサポートしている[5][6]

Remove ads

利点

GNU lightningが提供する機能は実行時コンパイルに役立つ。LLVMlibJITなどのライブラリと比較すると、GNU lightningはSPARCおよびMIPSアーキテクチャに緩く基づいた標準化されたRISCアセンブリ言語からターゲットアーキテクチャの機械語にアセンブルするための低水準インターフェースのみを提供する。

欠点

レジスタ割り付けデータフロー制御フロー解析英語版最適化は提供されない[要出典]。2.xからは、標準化された命令ごとに1つずつコードを生成するのではなく、中間グラフを介してコードを生成する。この変更により、レジスタ割り付けやデッドコード削除などの命令間の最適化が可能になる[7]

命令セット

GNU lightningの命令セットは、主に既存のRISCアーキテクチャに基づいている。

データ型

以下のような9種類のデータ型が存在する。

さらに見る 型, Cでの相当する型 ...

GNU lightningを使用するプロジェクト

GNU Smalltalk[8]GNU Guile[9]CLISP[10]実行時コンパイルにGNU lightningを使用している。GNU lightningは当初、バイトコードからネイティブコードへのGNU Smalltalkの動的トランスレータとして開発された[11]。GNU Guile 2.9.2以降では、ネイティブコード生成にGNU lightning 2.xの使用をやめ、代わりにGNU lightning 1.4に基づく独自のフォークを使用している。これは、GNU lightning 2.xが命令間の最適化に多くの複雑さを費やしているためである[12]

注釈

  1. 2007-07-01から[3]
  2. 2002-06-25から2007-07-01まで[4]

脚注

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads