Closed Bug 1224810 Opened 9 years ago Closed 9 years ago

TraceLogger: Add the script information for the event created by BytecodeCompiler

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed

People

(Reporter: wuwei, Assigned: wuwei)

References

Details

Attachments

(1 file)

Peeled from bug 1223636.
see bug 1223636 comment #7 for more details.
See Also: → 1223636
Attached patch bug1224810.patchSplinter Review
the previous version is attachment 8685999 [details] [diff] [review].
fixed style-nit (bug 1223636 comment 5).

asking r?h4writer when we come to an agreement on bug 1223636 comment 6.
Flags: needinfo?(lazyparser)
Comment on attachment 8687546 [details] [diff] [review]
bug1224810.patch

talked to h4writer. we're agree on this bug. r?h4writer.
Flags: needinfo?(lazyparser)
Attachment #8687546 - Flags: review?(hv1989)
Comment on attachment 8687546 [details] [diff] [review]
bug1224810.patch

Review of attachment 8687546 [details] [diff] [review]:
-----------------------------------------------------------------

Looks good. Two issues with logging non-"script events" with 'script information'

::: js/src/frontend/BytecodeCompiler.cpp
@@ +132,5 @@
>                                     const ReadOnlyCompileOptions& options,
>                                     SourceBufferHolder& sourceBuffer,
>                                     Handle<ScopeObject*> enclosingStaticScope,
>                                     TraceLoggerTextId logId)
> +  : traceLogger(cx, logId, options),

This should be 'traceLogger(cx, logId)', since the given logId is not a "script event"
Script events being currently: TraceLogger_Scripts, TraceLogger_AnnotateScripts and TraceLogger_InlinedScripts
https://dxr.mozilla.org/mozilla-central/source/js/src/vm/TraceLogging.cpp#408

@@ +782,5 @@
>             .setColumn(lazy->column())
>             .setNoScriptRval(false)
>             .setSelfHostingMode(false);
>  
> +    AutoCompilationTraceLogger traceLogger(cx, TraceLogger_ParserCompileLazy, options);

This should be 'AutoCompilationTraceLogger traceLogger(cx, TraceLogger_ParserCompileLazy)', since the TraceLogger_ParserCompileLazy is not a "script event"
Script events being currently: TraceLogger_Scripts, TraceLogger_AnnotateScripts and TraceLogger_InlinedScripts
https://dxr.mozilla.org/mozilla-central/source/js/src/vm/TraceLogging.cpp#408

Can you create a constructor for AutoCompilationTraceLogger that takes no script information (options) to facilitate this?
Attachment #8687546 - Flags: review?(hv1989)
(In reply to Hannes Verschore [:h4writer] from comment #3)
> Comment on attachment 8687546 [details] [diff] [review]
> bug1224810.patch
> 
> Review of attachment 8687546 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Looks good. Two issues with logging non-"script events" with 'script
> information'
> 
> ::: js/src/frontend/BytecodeCompiler.cpp
> @@ +132,5 @@
> >                                     const ReadOnlyCompileOptions& options,
> >                                     SourceBufferHolder& sourceBuffer,
> >                                     Handle<ScopeObject*> enclosingStaticScope,
> >                                     TraceLoggerTextId logId)
> > +  : traceLogger(cx, logId, options),
> 
> This should be 'traceLogger(cx, logId)', since the given logId is not a
> "script event"
> Script events being currently: TraceLogger_Scripts,
> TraceLogger_AnnotateScripts and TraceLogger_InlinedScripts
> https://dxr.mozilla.org/mozilla-central/source/js/src/vm/TraceLogging.cpp#408
> 
> @@ +782,5 @@
> >             .setColumn(lazy->column())
> >             .setNoScriptRval(false)
> >             .setSelfHostingMode(false);
> >  
> > +    AutoCompilationTraceLogger traceLogger(cx, TraceLogger_ParserCompileLazy, options);
> 
> This should be 'AutoCompilationTraceLogger traceLogger(cx,
> TraceLogger_ParserCompileLazy)', since the TraceLogger_ParserCompileLazy is
> not a "script event"
> Script events being currently: TraceLogger_Scripts,
> TraceLogger_AnnotateScripts and TraceLogger_InlinedScripts
> https://dxr.mozilla.org/mozilla-central/source/js/src/vm/TraceLogging.cpp#408
> 
> Can you create a constructor for AutoCompilationTraceLogger that takes no
> script information (options) to facilitate this?

AutoCompilationTraceLogger creates a TraceLogger_Scripts implicitly, which consumes ReadOnlyCompileOptions. Unfortunately I failed to find another way for creating scripts events w/o passing the options that needed :(

I however have two workarounds:
1. Don't use AutoCompilationTraceLogger. Create scripts event and logger for ParserCompileXXX explicitly. This actually "reverts" the original commit;
2. Create three different AutoCompilationTraceLogger for each ParserCompileXXX events. Sounds not good.

I think I need some more advice here :)
Flags: needinfo?(hv1989)
Comment on attachment 8687546 [details] [diff] [review]
bug1224810.patch

Review of attachment 8687546 [details] [diff] [review]:
-----------------------------------------------------------------

Ok, my bad. This is totally correct!
Attachment #8687546 - Flags: review+
(In reply to Hannes Verschore [:h4writer] from comment #5)
> Comment on attachment 8687546 [details] [diff] [review]
> bug1224810.patch
> 
> Review of attachment 8687546 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Ok, my bad. This is totally correct!

np, thanks :)
Flags: needinfo?(hv1989)
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/f37799705530
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: