LLVM语言将整数类型指定为iN,其中N是整数的位宽,范围从1到2 ^ 23-1(根据:http://llvm.org/docs/LangRef.html#integer-型)
我有两个问题:
将C程序编译为LLVM IR级别时,可以将哪些类型降低到i1,i2,i3等?看起来类型i8,i16,i32,i64必须足够,所以我想知道所有其他近800万个整数类型是什么.
将有符号和无符号整数类型都降低到i32是真的吗?是什么原因,为什么它不适用于32位浮点数(在LLVM中表示为f32)?
我正在尝试开发基于LLVM基础结构的编译器.我的语言有类似C语法,因此我想利用现有的C编译器.现在我专注于前端(词法分析,解析),但我很困惑哪个前端是最好的方法.Clang,llvm-gcc还是传统的flex/bison工具?
我对最简单的解决方案特别感兴趣,这个解决方案允许我为编译器的后续阶段生成LLVM IR代码.