技術

8.3.1. ポータブルなoffsetofとsizeofの実装

初出時には第8章でしたが現在(2017/09/16時点)では原文のほうで新たに8章と9章が追加され、本章は10章となっているようです。
内容は初出時のまま残しておきますが原文へのリンクだけ10章のものを指すよう更新しました。

LLVMによるプログラミング言語の実装チュートリアル日本語訳
第8章 万華鏡: まとめとLLVMのその他の便利な点
第3.1節 ポータブルなoffsetofとsizeofの実装

もし、あなたのコンパイラによって生成されたコードを”ターゲット非依存”に保とうとする場合、いくつかのLLVMの型のサイズや、いくつかのLLVM構造体のフィールドのオフセットについて知る必要がある。
例えば、メモリ割り当てを行う関数に型を渡す必要があるかもしれない。

不幸なことに、これは実に広範囲なターゲットに関わる話である。
例えば、ポインタのサイズは明らかにターゲット特有のものである。
しかしながら、これをポータブルな方法で計算する事を可能にする、getelementptr命令の賢い使い方がある。(http://nondot.org/sabre/LLVMNotes/SizeOf-OffsetOf-VariableSizedStructs.txt

コメントを残す

メールアドレスが公開されることはありません。



※画像をクリックして別の画像を表示