numeric literal support:
define i32 @kfun:sum(i32) {
entry:
%a = alloca i32
store i32 %0, i32* %a
%tmp1 = load i32, i32* %a
%tmp0 = add i32 %tmp1, 33
ret i32 %tmp0
}
This commit is contained in:
+14
@@ -133,6 +133,20 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid
|
||||
}
|
||||
TODO()
|
||||
}
|
||||
|
||||
is IrConst<*> -> when (value.kind) {
|
||||
IrConstKind.Null -> TODO() // LLVMConstPointerNull
|
||||
IrConstKind.Boolean -> TODO()
|
||||
IrConstKind.Char -> TODO()
|
||||
IrConstKind.Byte -> return LLVMConstInt(LLVMInt32Type(), (value.value as Byte).toLong(), 1)
|
||||
IrConstKind.Short -> return LLVMConstInt(LLVMInt32Type(), (value.value as Short).toLong(), 1)
|
||||
IrConstKind.Int -> return LLVMConstInt(LLVMInt32Type(), (value.value as Int).toLong(), 1)
|
||||
IrConstKind.Long -> return LLVMConstInt(LLVMInt64Type(), value.value as Long, 1)
|
||||
IrConstKind.String -> TODO()
|
||||
IrConstKind.Float -> TODO()
|
||||
IrConstKind.Double -> TODO()
|
||||
}
|
||||
|
||||
null -> return null
|
||||
else -> {
|
||||
TODO()
|
||||
|
||||
Reference in New Issue
Block a user