Code style and nullables fixes

This commit is contained in:
Alexander Gorshenev
2016-11-07 14:24:49 +03:00
parent 26e3101014
commit 56f574684a
2 changed files with 14 additions and 17 deletions
@@ -39,6 +39,7 @@ fun ir2string(ir: IrElement?): String {
} }
fun llvm2string(value: LLVMOpaqueValue?): String { fun llvm2string(value: LLVMOpaqueValue?): String {
if (value == null) return "<null>"
return LLVMPrintValueToString(value)!!.asCString().toString() return LLVMPrintValueToString(value)!!.asCString().toString()
} }
@@ -9,32 +9,29 @@ import org.jetbrains.kotlin.backend.BinaryMetadata.FunMetadata
internal class MetadataGenerator(override val context: Context): ContextUtils { internal class MetadataGenerator(override val context: Context): ContextUtils {
private fun metadata_string(str: String): LLVMOpaqueValue? { private fun metadataString(str: String): LLVMOpaqueValue {
return LLVMMDString(str, str.length) return LLVMMDString(str, str.length)!!
} }
private fun metadata_node(args: MutableList<LLVMOpaqueValue?>): LLVMOpaqueValue? { private fun metadataNode(args: MutableList<LLVMOpaqueValue?>): LLVMOpaqueValue {
memScoped { memScoped {
val rargs = alloc(array[args.size](Ref to LLVMOpaqueValue)) val rargs = alloc(array[args.size](Ref to LLVMOpaqueValue))
args.forEachIndexed { i, llvmOpaqueValue -> rargs[i].value = args[i]} args.forEachIndexed { i, llvmOpaqueValue -> rargs[i].value = args[i]}
return LLVMMDNode(rargs[0], args.size); return LLVMMDNode(rargs[0], args.size)!!
} }
} }
private fun metadata_fun(fn: LLVMOpaqueValue?, info: String): LLVMOpaqueValue? { private fun metadataFun(fn: LLVMOpaqueValue?, info: String): LLVMOpaqueValue {
val args: MutableList<LLVMOpaqueValue?> = mutableListOf() val args: MutableList<LLVMOpaqueValue?> = mutableListOf(fn, metadataString(info));
args += fn val md = metadataNode(args)
args += metadata_string(info);
val md = metadata_node(args)
return md return md
} }
private fun emit_module_metadata(name: String, md: LLVMOpaqueValue?) { private fun emitModuleMetadata(name: String, md: LLVMOpaqueValue?) {
LLVMAddNamedMetadataOperand(context.llvmModule, name, md) LLVMAddNamedMetadataOperand(context.llvmModule, name, md)
} }
private fun serialize_fun_signature(declaration:IrFunction): String { private fun serializeFunSignature(declaration:IrFunction): String {
val builder = FunMetadata.newBuilder() val builder = FunMetadata.newBuilder()
val hash = "0x123456 some hash" val hash = "0x123456 some hash"
@@ -53,13 +50,12 @@ internal class MetadataGenerator(override val context: Context): ContextUtils {
} }
internal fun function(declaration: IrFunction) { internal fun function(declaration: IrFunction) {
val fn = declaration.descriptor.llvmFunction.getLlvmValue() val fn = declaration.descriptor.llvmFunction.getLlvmValue()
val proto = serialize_fun_signature(declaration) val proto = serializeFunSignature(declaration)
val md = metadata_fun(fn, proto) val md = metadataFun(fn, proto)
emit_module_metadata("kfun", md); emitModuleMetadata("kfun", md);
} }
} }