[K/N] Implement GCScheduler

This commit is contained in:
Alexander Shabalin
2021-09-14 13:53:36 +00:00
committed by Space
parent a8d321db63
commit d03a7993ed
12 changed files with 227 additions and 121 deletions
@@ -124,7 +124,11 @@ private class CallsChecker(val context: Context, goodFunctions: List<String>) {
else -> {
callSiteDescription = functionName
calledName = calleeInfo.name
calledPtrLlvm = LLVMBuildBitCast(builder, calleeInfo.calledPtr, int8TypePtr, "")
calledPtrLlvm = when (val typeKind = LLVMGetTypeKind(calleeInfo.calledPtr.type)) {
LLVMTypeKind.LLVMPointerTypeKind -> LLVMBuildBitCast(builder, calleeInfo.calledPtr, int8TypePtr, "")
LLVMTypeKind.LLVMIntegerTypeKind -> LLVMBuildIntToPtr(builder, calleeInfo.calledPtr, int8TypePtr, "")
else -> TODO("Unsupported typeKind=${typeKind} of calledPtr=${llvm2string(calleeInfo.calledPtr)}")
}
}
}
val callSiteDescriptionLlvm = context.llvm.staticData.cStringLiteral(callSiteDescription).llvm