WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 112838
The DFG should be able to tier-up and OSR enter into the FTL
https://bugs.webkit.org/show_bug.cgi?id=112838
Summary
The DFG should be able to tier-up and OSR enter into the FTL
Filip Pizlo
Reported
2013-03-20 13:42:55 PDT
This also means that DFG code block jettisoning logic, and the CodeBlock's ability to keep a linked list of alternate compilations of an executable, should all be aware of the fact that there are two kinds of DFG compilation - the lesser kind and the better kind (or whatever we end up calling it).
Attachments
it begins...
(4.03 KB, patch)
2013-08-29 17:01 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
more things
(19.08 KB, patch)
2013-08-29 19:35 PDT
,
Filip Pizlo
webkit-ews
: commit-queue-
Details
Formatted Diff
Diff
I think I know what I'm doing now
(32.08 KB, patch)
2013-08-30 12:36 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
it's sort of getting there
(37.50 KB, patch)
2013-08-30 13:23 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
slowly but surely!
(45.00 KB, patch)
2013-08-30 16:20 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
it's getting fun.
(55.78 KB, patch)
2013-08-30 19:39 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
even more things
(64.02 KB, patch)
2013-08-31 11:33 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
getting there
(84.73 KB, patch)
2013-08-31 14:44 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
getting close
(107.33 KB, patch)
2013-08-31 15:48 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
starting to compile
(179.75 KB, patch)
2013-09-02 12:53 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
builds with !ENABLE(FTL_JIT)
(179.79 KB, patch)
2013-09-02 13:03 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
it builds
(182.27 KB, patch)
2013-09-02 13:54 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
JSC just did an OSR-entry hot loop transfer from the DFG to the FTL.
(190.96 KB, patch)
2013-09-02 15:17 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
it makes imaging-gaussian-blur faster
(196.00 KB, patch)
2013-09-02 22:14 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(150.81 KB, patch)
2013-09-03 10:15 PDT
,
Filip Pizlo
webkit-ews
: commit-queue-
Details
Formatted Diff
Diff
the patch
(153.61 KB, patch)
2013-09-03 10:38 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(156.18 KB, patch)
2013-09-03 13:54 PDT
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(157.13 KB, patch)
2013-09-03 15:20 PDT
,
Filip Pizlo
fpizlo
: review+
Details
Formatted Diff
Diff
Show Obsolete
(17)
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2013-08-26 14:48:29 PDT
***
Bug 113625
has been marked as a duplicate of this bug. ***
Filip Pizlo
Comment 2
2013-08-29 17:01:28 PDT
Created
attachment 210049
[details]
it begins...
Filip Pizlo
Comment 3
2013-08-29 19:35:28 PDT
Created
attachment 210058
[details]
more things
Early Warning System Bot
Comment 4
2013-08-30 03:00:51 PDT
Comment on
attachment 210058
[details]
more things
Attachment 210058
[details]
did not pass qt-ews (qt): Output:
http://webkit-queues.appspot.com/results/1626877
Early Warning System Bot
Comment 5
2013-08-30 03:02:44 PDT
Comment on
attachment 210058
[details]
more things
Attachment 210058
[details]
did not pass qt-wk2-ews (qt-wk2): Output:
http://webkit-queues.appspot.com/results/1648038
EFL EWS Bot
Comment 6
2013-08-30 03:16:17 PDT
Comment on
attachment 210058
[details]
more things
Attachment 210058
[details]
did not pass efl-wk2-ews (efl-wk2): Output:
http://webkit-queues.appspot.com/results/1651045
Build Bot
Comment 7
2013-08-30 03:23:14 PDT
Comment on
attachment 210058
[details]
more things
Attachment 210058
[details]
did not pass mac-wk2-ews (mac-wk2): Output:
http://webkit-queues.appspot.com/results/1650047
Build Bot
Comment 8
2013-08-30 03:41:30 PDT
Comment on
attachment 210058
[details]
more things
Attachment 210058
[details]
did not pass mac-ews (mac): Output:
http://webkit-queues.appspot.com/results/1646046
EFL EWS Bot
Comment 9
2013-08-30 03:56:14 PDT
Comment on
attachment 210058
[details]
more things
Attachment 210058
[details]
did not pass efl-ews (efl): Output:
http://webkit-queues.appspot.com/results/1648044
kov's GTK+ EWS bot
Comment 10
2013-08-30 04:14:16 PDT
Comment on
attachment 210058
[details]
more things
Attachment 210058
[details]
did not pass gtk-ews (gtk): Output:
http://webkit-queues.appspot.com/results/1582471
kov's GTK+ EWS bot
Comment 11
2013-08-30 05:34:47 PDT
Comment on
attachment 210058
[details]
more things
Attachment 210058
[details]
did not pass gtk-ews (gtk): Output:
http://webkit-queues.appspot.com/results/1648077
Filip Pizlo
Comment 12
2013-08-30 12:36:33 PDT
Created
attachment 210150
[details]
I think I know what I'm doing now
Filip Pizlo
Comment 13
2013-08-30 13:23:50 PDT
Created
attachment 210154
[details]
it's sort of getting there
Filip Pizlo
Comment 14
2013-08-30 16:20:54 PDT
Created
attachment 210174
[details]
slowly but surely!
Filip Pizlo
Comment 15
2013-08-30 19:39:42 PDT
Created
attachment 210180
[details]
it's getting fun.
Filip Pizlo
Comment 16
2013-08-31 11:33:11 PDT
Created
attachment 210199
[details]
even more things
Filip Pizlo
Comment 17
2013-08-31 14:44:18 PDT
Created
attachment 210216
[details]
getting there
Filip Pizlo
Comment 18
2013-08-31 15:48:15 PDT
Created
attachment 210219
[details]
getting close I think I need to rethink jettisoning, if I want any of this to make sense.
Filip Pizlo
Comment 19
2013-09-02 12:53:25 PDT
Created
attachment 210307
[details]
starting to compile This includes the patch for
https://bugs.webkit.org/show_bug.cgi?id=120567
because I need that and it hasn't been reviewed yet.
Filip Pizlo
Comment 20
2013-09-02 13:03:39 PDT
Created
attachment 210308
[details]
builds with !ENABLE(FTL_JIT)
Filip Pizlo
Comment 21
2013-09-02 13:54:42 PDT
Created
attachment 210309
[details]
it builds
Filip Pizlo
Comment 22
2013-09-02 15:17:22 PDT
Created
attachment 210312
[details]
JSC just did an OSR-entry hot loop transfer from the DFG to the FTL.
Filip Pizlo
Comment 23
2013-09-02 15:18:07 PDT
(In reply to
comment #22
)
> Created an attachment (id=210312) [details] > JSC just did an OSR-entry hot loop transfer from the DFG to the FTL.
This would basically be ready for review, except that it depends on and includes
https://bugs.webkit.org/show_bug.cgi?id=120567
, which hasn't been reviewed or landed yet.
Filip Pizlo
Comment 24
2013-09-02 22:14:57 PDT
Created
attachment 210322
[details]
it makes imaging-gaussian-blur faster Turns out I had to rethink how OSR entrypoint creation works. I'm not sure I'm 100% happy with it but it does the job.
Filip Pizlo
Comment 25
2013-09-03 10:15:23 PDT
Created
attachment 210381
[details]
the patch Rebased. I think it's ready.
WebKit Commit Bot
Comment 26
2013-09-03 10:17:11 PDT
Attachment 210381
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/fast/js/regress/script-tests/marsaglia.js', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj', u'Source/JavaScriptCore/bytecode/CodeBlock.cpp', u'Source/JavaScriptCore/bytecode/CodeBlock.h', u'Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h', u'Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp', u'Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGClobberize.h', u'Source/JavaScriptCore/dfg/DFGDriver.cpp', u'Source/JavaScriptCore/dfg/DFGDriver.h', u'Source/JavaScriptCore/dfg/DFGFixupPhase.cpp', u'Source/JavaScriptCore/dfg/DFGGraph.cpp', u'Source/JavaScriptCore/dfg/DFGGraph.h', u'Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp', u'Source/JavaScriptCore/dfg/DFGJITCode.cpp', u'Source/JavaScriptCore/dfg/DFGJITCode.h', u'Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp', u'Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.h', u'Source/JavaScriptCore/dfg/DFGNode.h', u'Source/JavaScriptCore/dfg/DFGNodeType.h', u'Source/JavaScriptCore/dfg/DFGOSREntry.cpp', u'Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.h', u'Source/JavaScriptCore/dfg/DFGOperations.cpp', u'Source/JavaScriptCore/dfg/DFGOperations.h', u'Source/JavaScriptCore/dfg/DFGPlan.cpp', u'Source/JavaScriptCore/dfg/DFGPlan.h', u'Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp', u'Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGSafeToExecute.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp', u'Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp', u'Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.h', u'Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp', u'Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.h', u'Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp', u'Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.h', u'Source/JavaScriptCore/dfg/DFGWorklist.cpp', u'Source/JavaScriptCore/dfg/DFGWorklist.h', u'Source/JavaScriptCore/ftl/FTLCapabilities.cpp', u'Source/JavaScriptCore/ftl/FTLCapabilities.h', u'Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.cpp', u'Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.h', u'Source/JavaScriptCore/ftl/FTLJITFinalizer.cpp', u'Source/JavaScriptCore/ftl/FTLLink.cpp', u'Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp', u'Source/JavaScriptCore/ftl/FTLOSREntry.cpp', u'Source/JavaScriptCore/ftl/FTLOSREntry.h', u'Source/JavaScriptCore/ftl/FTLOutput.h', u'Source/JavaScriptCore/ftl/FTLState.cpp', u'Source/JavaScriptCore/interpreter/Register.h', u'Source/JavaScriptCore/jit/JIT.cpp', u'Source/JavaScriptCore/jit/JITCode.cpp', u'Source/JavaScriptCore/jit/JITCode.h', u'Source/JavaScriptCore/jit/JITStubs.cpp', u'Source/JavaScriptCore/runtime/Executable.cpp', u'Source/JavaScriptCore/runtime/Options.h', u'Source/JavaScriptCore/runtime/VM.cpp', u'Source/JavaScriptCore/runtime/VM.h']" exit_code: 1 Source/JavaScriptCore/dfg/DFGJITCode.h:105: The parameter name "exec" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:31: Alphabetical sorting problem. [build/include_order] [4] Source/JavaScriptCore/ftl/FTLState.cpp:34: Alphabetical sorting problem. [build/include_order] [4] Source/JavaScriptCore/dfg/DFGOperations.cpp:2132: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Source/JavaScriptCore/ftl/FTLOSREntry.cpp:81: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Source/JavaScriptCore/ftl/FTLOSREntry.cpp:89: Declaration has space between type name and * in void *result [whitespace/declaration] [3] Total errors found: 6 in 61 files If any of these errors are false positives, please file a bug against check-webkit-style.
Early Warning System Bot
Comment 27
2013-09-03 10:23:19 PDT
Comment on
attachment 210381
[details]
the patch
Attachment 210381
[details]
did not pass qt-ews (qt): Output:
http://webkit-queues.appspot.com/results/1697032
Early Warning System Bot
Comment 28
2013-09-03 10:26:08 PDT
Comment on
attachment 210381
[details]
the patch
Attachment 210381
[details]
did not pass qt-wk2-ews (qt-wk2): Output:
http://webkit-queues.appspot.com/results/1693306
Filip Pizlo
Comment 29
2013-09-03 10:38:19 PDT
Created
attachment 210384
[details]
the patch Style and build fixes.
WebKit Commit Bot
Comment 30
2013-09-03 10:42:18 PDT
Attachment 210384
[details]
did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/fast/js/regress/script-tests/marsaglia.js', u'Source/JavaScriptCore/CMakeLists.txt', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/GNUmakefile.list.am', u'Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj', u'Source/JavaScriptCore/Target.pri', u'Source/JavaScriptCore/bytecode/CodeBlock.cpp', u'Source/JavaScriptCore/bytecode/CodeBlock.h', u'Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h', u'Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp', u'Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGClobberize.h', u'Source/JavaScriptCore/dfg/DFGDriver.cpp', u'Source/JavaScriptCore/dfg/DFGDriver.h', u'Source/JavaScriptCore/dfg/DFGFixupPhase.cpp', u'Source/JavaScriptCore/dfg/DFGGraph.cpp', u'Source/JavaScriptCore/dfg/DFGGraph.h', u'Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp', u'Source/JavaScriptCore/dfg/DFGJITCode.cpp', u'Source/JavaScriptCore/dfg/DFGJITCode.h', u'Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp', u'Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGLoopPreHeaderCreationPhase.h', u'Source/JavaScriptCore/dfg/DFGNode.h', u'Source/JavaScriptCore/dfg/DFGNodeType.h', u'Source/JavaScriptCore/dfg/DFGOSREntry.cpp', u'Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGOSREntrypointCreationPhase.h', u'Source/JavaScriptCore/dfg/DFGOperations.cpp', u'Source/JavaScriptCore/dfg/DFGOperations.h', u'Source/JavaScriptCore/dfg/DFGPlan.cpp', u'Source/JavaScriptCore/dfg/DFGPlan.h', u'Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp', u'Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGSafeToExecute.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp', u'Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.cpp', u'Source/JavaScriptCore/dfg/DFGTierUpCheckInjectionPhase.h', u'Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp', u'Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.h', u'Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp', u'Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.h', u'Source/JavaScriptCore/dfg/DFGWorklist.cpp', u'Source/JavaScriptCore/dfg/DFGWorklist.h', u'Source/JavaScriptCore/ftl/FTLCapabilities.cpp', u'Source/JavaScriptCore/ftl/FTLCapabilities.h', u'Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.cpp', u'Source/JavaScriptCore/ftl/FTLForOSREntryJITCode.h', u'Source/JavaScriptCore/ftl/FTLJITFinalizer.cpp', u'Source/JavaScriptCore/ftl/FTLLink.cpp', u'Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp', u'Source/JavaScriptCore/ftl/FTLOSREntry.cpp', u'Source/JavaScriptCore/ftl/FTLOSREntry.h', u'Source/JavaScriptCore/ftl/FTLOutput.h', u'Source/JavaScriptCore/ftl/FTLState.cpp', u'Source/JavaScriptCore/interpreter/Register.h', u'Source/JavaScriptCore/jit/JIT.cpp', u'Source/JavaScriptCore/jit/JITCode.cpp', u'Source/JavaScriptCore/jit/JITCode.h', u'Source/JavaScriptCore/jit/JITStubs.cpp', u'Source/JavaScriptCore/runtime/Executable.cpp', u'Source/JavaScriptCore/runtime/Options.h', u'Source/JavaScriptCore/runtime/VM.cpp', u'Source/JavaScriptCore/runtime/VM.h']" exit_code: 1 Source/JavaScriptCore/ftl/FTLOSREntry.cpp:89: Declaration has space between type name and * in void *result [whitespace/declaration] [3] Total errors found: 1 in 64 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 31
2013-09-03 13:54:59 PDT
Created
attachment 210408
[details]
the patch
Filip Pizlo
Comment 32
2013-09-03 15:20:39 PDT
Created
attachment 210414
[details]
the patch
Filip Pizlo
Comment 33
2013-09-03 16:30:06 PDT
Comment on
attachment 210414
[details]
the patch r=MarkH (reviewed in person)
Filip Pizlo
Comment 34
2013-09-03 23:25:24 PDT
Landed in
http://trac.webkit.org/changeset/155023
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug