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).
*** 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