铛位字段打包规则

时间:2018-11-28 21:48:44

标签: clang llvm bit-packing

我正在构建LLVM传递,它需要知道用于LLVM IR中的多个位字段的类型。我做了一些实验,并得到以下结果:

enter image description here

enter image description here

这是预期的结果,因为llvm IR可以使用i8类型来打包两个字段。但是,以下实验使我感到困惑。

enter image description here

enter image description here

这些字段不应该放在{i8,i8}中而不是一个i16中吗?

更有趣的内核代码实验:

enter image description here

enter image description here

如上所示,所有位字段都适合一个i32。

那么,clang是否有任何规则来决定应使用哪种类型来适合多个位字段?

非常感谢。

0 个答案:

没有答案