私は2つのモジュールを一緒にリンクしています(KLEEですが、それは重要ではないと思います)が、データレイアウトが異なるように見えるため、llvmが文句を言います:
警告: 異なるデータ レイアウトの 2 つのモジュールをリンクしています!
私はそれらを見て、最初libkleeRuntimeIntrinsic.bca
に次のレイアウトを持っていることがわかりました
e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64
私自身client.bc
が持っている間
e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-f128:128:128-n8:16:32:64
これらを比較したところ、後者はf128:128:128
多すぎます。ドキュメントによると、 128ビット浮動小数点数のサポートを示しています。
これらは、同じバージョンの同じシステム上に構築され、llvm-gcc
/ でリンク/アーカイブされましllvm-ld
たllvm-ar
。すべての llvm バージョン 2.9 (私の llvm はDebug+Asserts
モードで構成されています)。
この理由は何ですか? また、どうすれば 2 番目の ( client.bc
) を同じ日のレイアウト (つまり、なしf128:128:128
) にすることができますか?