RESOLVED FIXED 122739
FTL should use llvm.webkit.patchpoint for inline caches
https://bugs.webkit.org/show_bug.cgi?id=122739
Summary FTL should use llvm.webkit.patchpoint for inline caches
Filip Pizlo
Reported 2013-10-13 21:53:48 PDT
...
Attachments
it begins (8.40 KB, patch)
2013-10-19 21:41 PDT, Filip Pizlo
no flags
so much fun still to be had! (31.40 KB, patch)
2013-10-21 14:20 PDT, Filip Pizlo
no flags
more! (39.92 KB, patch)
2013-10-21 16:58 PDT, Filip Pizlo
no flags
slow path call stuff is written (44.58 KB, patch)
2013-10-21 19:13 PDT, Filip Pizlo
no flags
I think I wrote all of the code (123.60 KB, patch)
2013-10-21 21:09 PDT, Filip Pizlo
no flags
for real this time (58.12 KB, patch)
2013-10-21 21:13 PDT, Filip Pizlo
no flags
starting to compile (68.68 KB, patch)
2013-10-21 21:27 PDT, Filip Pizlo
no flags
it compiles (74.73 KB, patch)
2013-10-21 22:50 PDT, Filip Pizlo
no flags
starting to work? (76.31 KB, patch)
2013-10-21 23:32 PDT, Filip Pizlo
buildbot: commit-queue-
Filip Pizlo
Comment 1 2013-10-19 21:41:07 PDT
Created attachment 214690 [details] it begins But every time I think I can start rage-hacking this into existence, I find another set of prerequisites that I have to handle in another patch.
Filip Pizlo
Comment 2 2013-10-21 14:20:07 PDT
Created attachment 214779 [details] so much fun still to be had!
Filip Pizlo
Comment 3 2013-10-21 16:58:47 PDT
Filip Pizlo
Comment 4 2013-10-21 19:13:30 PDT
Created attachment 214806 [details] slow path call stuff is written
Filip Pizlo
Comment 5 2013-10-21 21:09:00 PDT
Created attachment 214811 [details] I think I wrote all of the code
Filip Pizlo
Comment 6 2013-10-21 21:13:57 PDT
Created attachment 214812 [details] for real this time Haven't tried compiling it yet.
Filip Pizlo
Comment 7 2013-10-21 21:27:20 PDT
Created attachment 214813 [details] starting to compile
Filip Pizlo
Comment 8 2013-10-21 22:50:12 PDT
Created attachment 214819 [details] it compiles
Filip Pizlo
Comment 9 2013-10-21 23:32:37 PDT
Created attachment 214821 [details] starting to work?
WebKit Commit Bot
Comment 10 2013-10-22 03:53:19 PDT
Attachment 214821 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj', u'Source/JavaScriptCore/assembler/AbstractMacroAssembler.h', u'Source/JavaScriptCore/assembler/LinkBuffer.cpp', u'Source/JavaScriptCore/assembler/LinkBuffer.h', u'Source/JavaScriptCore/ftl/FTLAbbreviations.h', u'Source/JavaScriptCore/ftl/FTLCapabilities.cpp', u'Source/JavaScriptCore/ftl/FTLCompile.cpp', u'Source/JavaScriptCore/ftl/FTLInlineCacheDescriptor.h', u'Source/JavaScriptCore/ftl/FTLInlineCacheSize.cpp', u'Source/JavaScriptCore/ftl/FTLInlineCacheSize.h', u'Source/JavaScriptCore/ftl/FTLIntrinsicRepository.h', u'Source/JavaScriptCore/ftl/FTLJITFinalizer.cpp', u'Source/JavaScriptCore/ftl/FTLJITFinalizer.h', u'Source/JavaScriptCore/ftl/FTLLocation.cpp', u'Source/JavaScriptCore/ftl/FTLLocation.h', u'Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp', u'Source/JavaScriptCore/ftl/FTLOutput.h', u'Source/JavaScriptCore/ftl/FTLSlowPathCall.cpp', u'Source/JavaScriptCore/ftl/FTLSlowPathCall.h', u'Source/JavaScriptCore/ftl/FTLSlowPathCallKey.cpp', u'Source/JavaScriptCore/ftl/FTLSlowPathCallKey.h', u'Source/JavaScriptCore/ftl/FTLStackMaps.cpp', u'Source/JavaScriptCore/ftl/FTLStackMaps.h', u'Source/JavaScriptCore/ftl/FTLState.h', u'Source/JavaScriptCore/ftl/FTLThunks.cpp', u'Source/JavaScriptCore/ftl/FTLThunks.h', u'Source/JavaScriptCore/jit/CCallHelpers.h', u'Source/JavaScriptCore/jit/GPRInfo.h', u'Source/JavaScriptCore/jit/JITInlineCacheGenerator.cpp', u'Source/JavaScriptCore/jit/JITInlineCacheGenerator.h', u'Source/JavaScriptCore/jit/RegisterSet.cpp', u'Source/JavaScriptCore/jit/RegisterSet.h', u'Source/JavaScriptCore/runtime/Options.h', u'Source/WTF/wtf/BitVector.cpp', u'Source/WTF/wtf/BitVector.h', u'Source/WTF/wtf/HashTraits.h', u'Source/WTF/wtf/StdLibExtras.h']" exit_code: 1 Source/WTF/wtf/BitVector.h:271: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] Source/JavaScriptCore/ftl/FTLSlowPathCall.h:60: The parameter name "object" adds no information, so it should be removed. [readability/parameter_name] [5] Source/JavaScriptCore/ftl/FTLSlowPathCall.cpp:41: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] Total errors found: 3 in 37 files If any of these errors are false positives, please file a bug against check-webkit-style.
Build Bot
Comment 11 2013-10-22 04:34:39 PDT
Comment on attachment 214821 [details] starting to work? Attachment 214821 [details] did not pass win-ews (win): Output: http://webkit-queues.appspot.com/results/8858264
Filip Pizlo
Comment 12 2013-10-22 08:58:54 PDT
This is going to take some effort to get right. Just as I did with OSR, I think I'll first land the prototype that can do some simple inline cache and then file bugs for the things that need to be done before this passes all tests.
Filip Pizlo
Comment 13 2013-10-23 13:45:34 PDT
This looks like it works as of http://trac.webkit.org/changeset/157872. Leaving this bug open since the corresponding LLVM support hasn't landed yet.
Filip Pizlo
Comment 14 2013-11-02 20:14:35 PDT
It's in trunk. The remaining work to port the implementation to the slight changes between the original LLVM patch and what landed will be covered in https://bugs.webkit.org/show_bug.cgi?id=122318.
Note You need to log in before you can comment on or make changes to this bug.