[Phoronix] Google Wants LLVM To Mainline x32 ABI Support
[LLVMdev] Upstreaming x32 ABI support
なんでも、Native ClientのABIはx86-64環境において32bitアドレスなんだそうで、これはx32の方向性と一致する。したがって、GoogleのNative Clientチームは、LLVMにx32が入って欲しいのだとか。
Native Clientは、ブラウザー上でネイティブコード(x86かARM)を安全に実行するための仕組みである。x32は、x86-64の命令セットの拡張や増加した汎用レジスターの恩恵を受けつつ、アドレスだけは32bitに保ち節約するという、いいとこ取りを狙ったABIで、現在、Linuxカーネル、glibc、gdb、gccといった環境でサポートされている。
アドレス長を32bitに保つことの利点は、コードサイズを削減し、キャッシュにより多くのコードがのるようになり、すなわちパフォーマンス上有利になることだ。特に、スマートフォンやタブレットなどのCPUが貧弱な環境では意味が出てくるのだろうか。
しかし、x32を使うという事は、プログラムのみならず、すべての動的リンクされるライブラリをx32でコンパイルして適切に配置しておかなければならない。僅かなパフォーマンス増加に見合うコストなのだろうか。
Native Clientではどうせすべてのライブラリを専用にビルドしなければならないから、そのコストは埋没するのではないですかね。
ReplyDelete