Summary: | The DFG should be able to tier-up and OSR enter into the FTL | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||||||||||||||||||||||||||||||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||||||||||||||||||||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||||||||||||||||||||||||||
Severity: | Normal | CC: | barraclough, buildbot, commit-queue, eflews.bot, ggaren, gtk-ews, gyuyoung.kim, mark.lam, mhahnenberg, msaboff, oliver, rakuco, rego+ews, rniwa, sam, webkit-ews, xan.lopez | ||||||||||||||||||||||||||||||||||||||
Priority: | P2 | ||||||||||||||||||||||||||||||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||||||||||||||||||||||||||||||
Hardware: | All | ||||||||||||||||||||||||||||||||||||||||
OS: | All | ||||||||||||||||||||||||||||||||||||||||
Bug Depends on: | 120326, 120453, 120486, 120489, 120567 | ||||||||||||||||||||||||||||||||||||||||
Bug Blocks: | 112836 | ||||||||||||||||||||||||||||||||||||||||
Attachments: |
|
Description
Filip Pizlo
2013-03-20 13:42:55 PDT
*** Bug 113625 has been marked as a duplicate of this bug. *** Created attachment 210049 [details]
it begins...
Created attachment 210058 [details]
more things
Comment on attachment 210058 [details] more things Attachment 210058 [details] did not pass qt-ews (qt): Output: http://webkit-queues.appspot.com/results/1626877 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 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 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 Comment on attachment 210058 [details] more things Attachment 210058 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/1646046 Comment on attachment 210058 [details] more things Attachment 210058 [details] did not pass efl-ews (efl): Output: http://webkit-queues.appspot.com/results/1648044 Comment on attachment 210058 [details] more things Attachment 210058 [details] did not pass gtk-ews (gtk): Output: http://webkit-queues.appspot.com/results/1582471 Comment on attachment 210058 [details] more things Attachment 210058 [details] did not pass gtk-ews (gtk): Output: http://webkit-queues.appspot.com/results/1648077 Created attachment 210150 [details]
I think I know what I'm doing now
Created attachment 210154 [details]
it's sort of getting there
Created attachment 210174 [details]
slowly but surely!
Created attachment 210180 [details]
it's getting fun.
Created attachment 210199 [details]
even more things
Created attachment 210216 [details]
getting there
Created attachment 210219 [details]
getting close
I think I need to rethink jettisoning, if I want any of this to make sense.
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. Created attachment 210308 [details]
builds with !ENABLE(FTL_JIT)
Created attachment 210309 [details]
it builds
Created attachment 210312 [details]
JSC just did an OSR-entry hot loop transfer from the DFG to the FTL.
(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. 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.
Created attachment 210381 [details]
the patch
Rebased. I think it's ready.
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.
Comment on attachment 210381 [details] the patch Attachment 210381 [details] did not pass qt-ews (qt): Output: http://webkit-queues.appspot.com/results/1697032 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 Created attachment 210384 [details]
the patch
Style and build fixes.
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.
Created attachment 210408 [details]
the patch
Created attachment 210414 [details]
the patch
Comment on attachment 210414 [details]
the patch
r=MarkH (reviewed in person)
Landed in http://trac.webkit.org/changeset/155023 |