Don't compute tree size and depth with debugging disabled (#1588)

This commit is contained in:
altrisi authored and GitHub committed 2022-11-09 09:59:00 +01:00
1 parent da5bccb5c5
commit 1466006638
1 file changed
+14 -6
+14 -6
View File
@@ -1116,26 +1116,34 @@ public class Expression
if (CarpetSettings.scriptsDebugging)
CarpetScriptServer.LOG.info("Input code size for "+getModuleName()+": " + treeSize(root) + " nodes, " + treeDepth(root) + " deep");
// Defined out here to not need to conditionally assign them with debugging disabled
int prevTreeSize = -1;
int prevTreeDepth = -1;
boolean changed = true;
while(changed) {
changed = false;
while (true) {
int tree_size = treeSize(root);
int tree_depth = treeDepth(root);
if (CarpetSettings.scriptsDebugging) {
prevTreeSize = treeSize(root);
prevTreeDepth = treeDepth(root);
}
boolean optimized = compactTree(root, Context.Type.NONE, 0);
if (!optimized) break;
changed = true;
if (CarpetSettings.scriptsDebugging)
CarpetScriptServer.LOG.info("Compacted from " + tree_size + " nodes, " + tree_depth + " code depth to " + treeSize(root) + " nodes, " + treeDepth(root) + " code depth");
CarpetScriptServer.LOG.info("Compacted from " + prevTreeSize + " nodes, " + prevTreeDepth + " code depth to " + treeSize(root) + " nodes, " + treeDepth(root) + " code depth");
}
while (true) {
int tree_size = treeSize(root);
int tree_depth = treeDepth(root);
if (CarpetSettings.scriptsDebugging) {
prevTreeSize = treeSize(root);
prevTreeDepth = treeDepth(root);
}
boolean optimized = optimizeTree(optimizeOnlyContext, root, Context.Type.NONE, 0);
if (!optimized) break;
changed = true;
if (CarpetSettings.scriptsDebugging)
CarpetScriptServer.LOG.info("Optimized from " + tree_size + " nodes, " + tree_depth + " code depth to " + treeSize(root) + " nodes, " + treeDepth(root) + " code depth");
CarpetScriptServer.LOG.info("Optimized from " + prevTreeSize + " nodes, " + prevTreeDepth + " code depth to " + treeSize(root) + " nodes, " + treeDepth(root) + " code depth");
}
}
return extractOp(optimizeOnlyContext, root, Context.Type.NONE);