Bug 113647

Summary: FTL should implement InvalidationPoint in terms of llvm.stackmap
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: 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, xan.lopez
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 123423, 123472    
Bug Blocks: 122318    
Attachments:
Description Flags
work in progress
none
more
none
it's done?
buildbot: commit-queue-
it compiles!
none
64-bit DFG is done
none
fixed jettisoning logic
none
work in progress
none
the patch mhahnenberg: review+

Description Filip Pizlo 2013-03-30 17:25:25 PDT
Fun.
Comment 1 Filip Pizlo 2013-03-31 18:54:17 PDT
<rdar://problem/13543716>
Comment 2 Filip Pizlo 2013-10-28 20:51:59 PDT
Created attachment 215360 [details]
work in progress
Comment 3 Filip Pizlo 2013-10-28 21:37:45 PDT
Created attachment 215362 [details]
more
Comment 4 Filip Pizlo 2013-10-28 21:48:00 PDT
Created attachment 215363 [details]
it's done?

Dunno.  I think I wrote all of the code.
Comment 5 WebKit Commit Bot 2013-10-29 03:14:13 PDT
Attachment 215363 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/bytecode/CodeBlock.cpp', u'Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.cpp', u'Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.h', u'Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp', u'Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.h', u'Source/JavaScriptCore/dfg/DFGAbstractHeap.h', u'Source/JavaScriptCore/dfg/DFGClobberize.cpp', u'Source/JavaScriptCore/dfg/DFGClobberize.h', u'Source/JavaScriptCore/dfg/DFGCommonData.cpp', u'Source/JavaScriptCore/dfg/DFGCommonData.h', u'Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp', u'Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.h', u'Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.cpp', u'Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.h', u'Source/JavaScriptCore/dfg/DFGJITCompiler.cpp', u'Source/JavaScriptCore/dfg/DFGJumpReplacement.cpp', u'Source/JavaScriptCore/dfg/DFGJumpReplacement.h', u'Source/JavaScriptCore/dfg/DFGNodeType.h', u'Source/JavaScriptCore/dfg/DFGOSRExitCompilationInfo.h', u'Source/JavaScriptCore/dfg/DFGPlan.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp', u'Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp', u'Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.h']" exit_code: 1
Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.h:26:  #ifndef header guard has wrong style, please use: ProfiledCodeBlockJettisoningWatchpoint_h  [build/header_guard] [5]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 6 Build Bot 2013-10-29 03:35:29 PDT
Comment on attachment 215363 [details]
it's done?

Attachment 215363 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/17138035
Comment 7 EFL EWS Bot 2013-10-29 03:38:04 PDT
Comment on attachment 215363 [details]
it's done?

Attachment 215363 [details] did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/17088040
Comment 8 Build Bot 2013-10-29 03:54:36 PDT
Comment on attachment 215363 [details]
it's done?

Attachment 215363 [details] did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/17138039
Comment 9 Build Bot 2013-10-29 03:54:43 PDT
Comment on attachment 215363 [details]
it's done?

Attachment 215363 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/17038041
Comment 10 kov's GTK+ EWS bot 2013-10-29 03:56:55 PDT
Comment on attachment 215363 [details]
it's done?

Attachment 215363 [details] did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/17158037
Comment 11 EFL EWS Bot 2013-10-29 06:57:41 PDT
Comment on attachment 215363 [details]
it's done?

Attachment 215363 [details] did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/16058086
Comment 12 Filip Pizlo 2013-10-29 11:00:21 PDT
Created attachment 215398 [details]
it compiles!
Comment 13 Filip Pizlo 2013-10-29 11:40:17 PDT
Created attachment 215407 [details]
64-bit DFG is done

Still need to actually implement the FTL backend code and port this to the DFG 32-bit.
Comment 14 WebKit Commit Bot 2013-10-29 12:05:31 PDT
Attachment 215407 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/CMakeLists.txt', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/GNUmakefile.list.am', u'Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCore.vcxproj', u'Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj', u'Source/JavaScriptCore/assembler/AbstractMacroAssembler.h', u'Source/JavaScriptCore/bytecode/CodeBlock.cpp', u'Source/JavaScriptCore/bytecode/CodeBlock.h', u'Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.cpp', u'Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.h', u'Source/JavaScriptCore/bytecode/ExitKind.cpp', u'Source/JavaScriptCore/bytecode/ExitKind.h', u'Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.cpp', u'Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.h', u'Source/JavaScriptCore/dfg/DFGAbstractHeap.h', u'Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h', u'Source/JavaScriptCore/dfg/DFGClobberize.cpp', u'Source/JavaScriptCore/dfg/DFGClobberize.h', u'Source/JavaScriptCore/dfg/DFGCommonData.cpp', u'Source/JavaScriptCore/dfg/DFGCommonData.h', u'Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.cpp', u'Source/JavaScriptCore/dfg/DFGDesiredWatchpoints.h', u'Source/JavaScriptCore/dfg/DFGFixupPhase.cpp', u'Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.cpp', u'Source/JavaScriptCore/dfg/DFGInvalidationPointInjectionPhase.h', u'Source/JavaScriptCore/dfg/DFGJITCode.h', u'Source/JavaScriptCore/dfg/DFGJITCompiler.cpp', u'Source/JavaScriptCore/dfg/DFGJITCompiler.h', u'Source/JavaScriptCore/dfg/DFGJumpReplacement.cpp', u'Source/JavaScriptCore/dfg/DFGJumpReplacement.h', u'Source/JavaScriptCore/dfg/DFGNodeType.h', u'Source/JavaScriptCore/dfg/DFGOSRExitCompilationInfo.h', u'Source/JavaScriptCore/dfg/DFGPlan.cpp', u'Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp', u'Source/JavaScriptCore/dfg/DFGSafeToExecute.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h', u'Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp', u'Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.cpp', u'Source/JavaScriptCore/dfg/DFGWatchpointCollectionPhase.h', u'Source/JavaScriptCore/jit/JumpReplacementWatchpoint.cpp', u'Source/JavaScriptCore/jit/JumpReplacementWatchpoint.h']" exit_code: 1
Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.h:26:  #ifndef header guard has wrong style, please use: ProfiledCodeBlockJettisoningWatchpoint_h  [build/header_guard] [5]
Total errors found: 1 in 36 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 15 Filip Pizlo 2013-10-29 13:21:20 PDT
Created attachment 215414 [details]
fixed jettisoning logic

Now, jettisons count reoptimization correctly.
Comment 16 Filip Pizlo 2013-10-29 14:39:49 PDT
I think that I'll split this into a separate patch.  The patches I've posted so far will be for https://bugs.webkit.org/show_bug.cgi?id=123472, which just adds the concept of InvalidationPoint.  This bug will be for implementing InvalidationPoint in the FTL.
Comment 17 Filip Pizlo 2013-10-30 20:53:57 PDT
Created attachment 215608 [details]
work in progress
Comment 18 Filip Pizlo 2013-10-31 13:30:20 PDT
Created attachment 215671 [details]
the patch
Comment 19 Mark Hahnenberg 2013-10-31 13:53:05 PDT
Comment on attachment 215671 [details]
the patch

r=me
Comment 20 Filip Pizlo 2013-10-31 15:48:13 PDT
Landed in http://trac.webkit.org/changeset/158402