diff --git a/src/template/incremental/ASTChange.tt b/src/template/incremental/ASTChange.tt index 3bd945d2971b4687a58ec18e974a1deff4c89215..687bc476880026f70565a2fb4c3b3404b7ce96ce 100644 --- a/src/template/incremental/ASTChange.tt +++ b/src/template/incremental/ASTChange.tt @@ -27,6 +27,7 @@ ASTNode.incHookSetParent = [[ $if (IncrementalEnabled) +$include(ASTNode.traceFlushIncBeginSetParent) $if (IncrementalLevelParam) if (state().disableDeps == 0 && !state().IN_ATTR_STORE_EVAL) { getParent_handler.notifyDependencies(); @@ -51,6 +52,7 @@ if (state().disableDeps == 0 && !(state().IN_COMPUTATION > 0)) { } } $endif +$include(ASTNode.traceFlushIncEndSetParent) /* if (node != null) { inc_changeState(node.inc_state); @@ -63,6 +65,7 @@ $endif ASTNode.incHookSetChild1 = [[ $if(IncrementalEnabled) +$include(ASTNode.traceFlushIncBeginSetChild) $if(IncrementalLevelParam) if (state().disableDeps == 0 && !state().IN_ATTR_STORE_EVAL) { @@ -162,13 +165,13 @@ $endif ASTNode.incHookSetChild5 = [[ $if(IncrementalEnabled) - +$include(ASTNode.traceFlushIncEndSetChild) $endif ]] ASTNode.incHookInsertChild1 = [[ $if(IncrementalEnabled) - +$include(ASTNode.traceFlushIncBeginInsertChild) $if(IncrementalLevelParam) if (state().disableDeps == 0 && !state().IN_ATTR_STORE_EVAL) { numChildren_handler.notifyDependencies(); @@ -235,6 +238,7 @@ if (getChild_handler != null) { getChild_handler = h; } $endif +$include(ASTNode.traceFlushIncEndInsertChild) $endif ]] @@ -242,7 +246,7 @@ $endif ASTNode.incHookRemoveChild1 = [[ $if(IncrementalEnabled) - +$include(ASTNode.traceFlushIncBeginRemoveChild) $if(IncrementalLevelParam) if (state().disableDeps == 0 && !state().IN_ATTR_STORE_EVAL) { if (children[i] != null) { @@ -314,12 +318,14 @@ if (getChild_handler != null && this instanceof $List) { getChild_handler[numChildren] = null; } $endif +$include(ASTNode.traceFlushIncEndRemoveChild) $endif ]] TokenComponent.incHookSetToken = [[ $if(IncrementalEnabled) +$include(TokenComponent.traceFlushIncBeginSetToken) $if(IncrementalLevelParam) if (state().disableDeps == 0 && !state().IN_ATTR_STORE_EVAL) { @@ -390,6 +396,6 @@ if (state().disableDeps == 0 && !(state().IN_COMPUTATION > 0)) { $endif } - +$include(TokenComponent.traceFlushIncEndSetToken) $endif ]] diff --git a/src/template/trace/TraceHooks.tt b/src/template/trace/TraceHooks.tt index 31090ec4998e0d27036c3eca54d79a7cd2c8e1b4..784f39bbb55cef496677d87399c46b9fb425a66d 100644 --- a/src/template/trace/TraceHooks.tt +++ b/src/template/trace/TraceHooks.tt @@ -323,6 +323,66 @@ state().trace().flushAttr("#getAspectName", this, "#hostClassName.#signatureJava $endif ]] +ASTNode.traceFlushIncBeginSetChild [[ +$if (TraceFlush) +state().trace().flushIncStart(this, "ASTNode.setChild", i, node); +$endif +]] + +TokenComponent.traceFlushIncBeginSetToken [[ +$if (TraceFlush) +state().trace().flushIncStart(this, "set$(Id)", "", value); +$endif +]] + +ASTNode.traceFlushIncBeginInsertChild [[ +$if (TraceFlush) +state().trace().flushIncStart(this, "ASTNode.insertChild", i, node); +$endif +]] + +ASTNode.traceFlushIncBeginRemoveChild [[ +$if (TraceFlush) +state().trace().flushIncStart(this, "ASTNode.removeChild", i, ""); +$endif +]] + +ASTNode.traceFlushIncBeginSetParent [[ +$if (TraceFlush) +state().trace().flushIncStart(this, "ASTNode.setParent", "", node); +$endif +]] + +ASTNode.traceFlushIncEndSetChild [[ +$if (TraceFlush) +state().trace().flushIncEnd(this, "ASTNode.setChild", i, node); +$endif +]] + +TokenComponent.traceFlushIncEndSetToken [[ +$if (TraceFlush) +state().trace().flushIncEnd(this, "set$(Id)", "", value); +$endif +]] + +ASTNode.traceFlushIncEndInsertChild [[ +$if (TraceFlush) +state().trace().flushIncEnd(this, "ASTNode.insertChild", i, node); +$endif +]] + +ASTNode.traceFlushIncEndRemoveChild [[ +$if (TraceFlush) +state().trace().flushIncEnd(this, "ASTNode.removeChild", i, ""); +$endif +]] + +ASTNode.traceFlushIncEndSetParent [[ +$if (TraceFlush) +state().trace().flushIncEnd(this, "ASTNode.setParent", "", node); +$endif +]] + AttrDecl.traceFlushIncAttr [[ $if (TraceFlush) state.trace().flushIncAttr("#getAspectName", fNode, fAttrID, "", ""); diff --git a/src/template/trace/Tracer.tt b/src/template/trace/Tracer.tt index 481a03472d22de8f56758725d2a217efc1fdcd04..f2ce9a230c0f34693d3089f161de8d7e717dce1a 100644 --- a/src/template/trace/Tracer.tt +++ b/src/template/trace/Tracer.tt @@ -79,7 +79,9 @@ public static class Trace { FLUSH_ATTR, FLUSH_REWRITE, FLUSH_REWRITE_INIT, + INC_FLUSH_START, INC_FLUSH_ATTR, + INC_FLUSH_END, // Flag: --tracing=coll CONTRIBUTION_CHECK_BEGIN, @@ -348,6 +350,20 @@ public static class Trace { receiver.accept($StateClass.Trace.Event.INC_FLUSH_ATTR, aspect, node, attr, params, value); } + /** + * Trace that flushing done by incremental evaluation begun. + */ + public void flushIncStart($ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.INC_FLUSH_START, ASPECT_AST, node, attr, params, value); + } + + /** + * Trace that flushing done by incremental evaluation ended. + */ + public void flushIncEnd($ASTNode node, String attr, Object params, Object value) { + receiver.accept($StateClass.Trace.Event.INC_FLUSH_END, ASPECT_AST, node, attr, params, value); + } + /** * Trace that a contribution check to a collection attribute begun. */