DFG: fixed debug output
This commit is contained in:
+7
-7
@@ -240,7 +240,7 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag
|
||||
|
||||
override fun visitFunction(declaration: IrFunction) {
|
||||
declaration.body?.let {
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
println("Analysing function ${declaration.descriptor}")
|
||||
println("IR: ${ir2stringWhole(declaration)}")
|
||||
}
|
||||
@@ -250,7 +250,7 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag
|
||||
|
||||
override fun visitField(declaration: IrField) {
|
||||
declaration.initializer?.let {
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
println("Analysing global field ${declaration.descriptor}")
|
||||
println("IR: ${ir2stringWhole(declaration)}")
|
||||
}
|
||||
@@ -263,7 +263,7 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag
|
||||
val visitor = ElementFinderVisitor()
|
||||
body.acceptVoid(visitor)
|
||||
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
println("FIRST PHASE")
|
||||
visitor.variableValues.elementData.forEach { t, u ->
|
||||
println("VAR $t:")
|
||||
@@ -279,7 +279,7 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag
|
||||
// Compute transitive closure of possible values for variables.
|
||||
visitor.variableValues.computeClosure()
|
||||
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
println("SECOND PHASE")
|
||||
visitor.variableValues.elementData.forEach { t, u ->
|
||||
println("VAR $t:")
|
||||
@@ -292,7 +292,7 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag
|
||||
val function = FunctionDFGBuilder(expressionValuesExtractor, visitor.variableValues,
|
||||
descriptor, visitor.expressions, visitor.returnValues, visitor.thrownValues).build()
|
||||
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
function.debugOutput()
|
||||
}
|
||||
|
||||
@@ -300,7 +300,7 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag
|
||||
}
|
||||
}, data = null)
|
||||
|
||||
DEBUG_OUTPUT(2) {
|
||||
DEBUG_OUTPUT(1) {
|
||||
println("SYMBOL TABLE:")
|
||||
symbolTable.classMap.forEach { descriptor, type ->
|
||||
println(" DESCRIPTOR: $descriptor")
|
||||
@@ -481,7 +481,7 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag
|
||||
return variables[descriptor as VariableDescriptor]!!
|
||||
}
|
||||
return nodes.getOrPut(expression) {
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
println("Converting expression")
|
||||
println(ir2stringWhole(expression))
|
||||
}
|
||||
|
||||
+13
-3
@@ -694,7 +694,7 @@ internal object DFGSerializer {
|
||||
val symbolTable = moduleDFG.symbolTable
|
||||
val typeMap = (symbolTable.classMap.values + DataFlowIR.Type.Virtual).distinct().withIndex().associateBy({ it.value }, { it.index })
|
||||
val functionSymbolMap = symbolTable.functionMap.values.distinct().withIndex().associateBy({ it.value }, { it.index })
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
println("TYPES: ${typeMap.size}, " +
|
||||
"FUNCTIONS: ${functionSymbolMap.size}, " +
|
||||
"PRIVATE FUNCTIONS: ${functionSymbolMap.keys.count { it is DataFlowIR.FunctionSymbol.Private }}, " +
|
||||
@@ -841,7 +841,7 @@ internal object DFGSerializer {
|
||||
context.librariesWithDependencies.forEach { library ->
|
||||
val libraryDataFlowGraph = library.dataFlowGraph
|
||||
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
println("Data flow graph size for lib '${library.libraryName}': ${libraryDataFlowGraph?.size ?: 0}")
|
||||
}
|
||||
|
||||
@@ -909,7 +909,7 @@ internal object DFGSerializer {
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG_OUTPUT(1) {
|
||||
DEBUG_OUTPUT(0) {
|
||||
println("Lib: ${library.libraryName}, types: ${types.size}, functions: ${functionSymbols.size}")
|
||||
}
|
||||
|
||||
@@ -1110,6 +1110,16 @@ internal object DFGSerializer {
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG_OUTPUT(1) {
|
||||
allTypes.forEach {
|
||||
println(it)
|
||||
println(" SUPER TYPES:")
|
||||
it.superTypes.forEach {
|
||||
println(" $it")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ExternalModulesDFG(allTypes, publicTypesMap, publicFunctionsMap, functions)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user