1

我将两个模块链接在一起(在 KLEE 中,但我认为这并不重要)并且 llvm 抱怨,因为它们似乎具有不同的数据布局:

警告:链接不同数据布局的两个模块!

我看了一下,结果发现第一个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 版本 2.9(我的 llvm 配置为模式)。llvm-ldllvm-arDebug+Asserts

这是什么原因,我怎样才能让第二个 ( client.bc) 具有相同的 daya 布局(即没有f128:128:128)?

4

0 回答 0