Bug 122538 - FTL should be able to do simple OSR exits using llvm.webkit.stackmap
Summary: FTL should be able to do simple OSR exits using llvm.webkit.stackmap
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks: 122487
  Show dependency treegraph
 
Reported: 2013-10-08 19:11 PDT by Filip Pizlo
Modified: 2013-10-09 21:24 PDT (History)
15 users (show)

See Also:


Attachments
the patch (75.07 KB, patch)
2013-10-08 19:20 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (77.66 KB, patch)
2013-10-08 19:23 PDT, Filip Pizlo
gtk-ews: commit-queue-
Details | Formatted Diff | Diff
the patch (77.74 KB, patch)
2013-10-08 19:52 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (77.66 KB, patch)
2013-10-08 20:10 PDT, Filip Pizlo
oliver: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2013-10-08 19:11:42 PDT
This bug is just for getting a basic prototype working.

Patch forthcoming.
Comment 1 Filip Pizlo 2013-10-08 19:20:56 PDT
Created attachment 213741 [details]
the patch
Comment 2 WebKit Commit Bot 2013-10-08 19:22:03 PDT
Attachment 213741 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj', u'Source/JavaScriptCore/assembler/AbstractMacroAssembler.h', u'Source/JavaScriptCore/assembler/MacroAssembler.h', u'Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h', u'Source/JavaScriptCore/assembler/X86Assembler.h', u'Source/JavaScriptCore/dfg/DFGPlan.cpp', u'Source/JavaScriptCore/ftl/FTLCArgumentGetter.cpp', u'Source/JavaScriptCore/ftl/FTLCArgumentGetter.h', u'Source/JavaScriptCore/ftl/FTLCompile.cpp', u'Source/JavaScriptCore/ftl/FTLExitThunkGenerator.cpp', u'Source/JavaScriptCore/ftl/FTLExitThunkGenerator.h', u'Source/JavaScriptCore/ftl/FTLExitValue.h', u'Source/JavaScriptCore/ftl/FTLFail.cpp', u'Source/JavaScriptCore/ftl/FTLIntrinsicRepository.h', u'Source/JavaScriptCore/ftl/FTLJITCode.h', u'Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp', u'Source/JavaScriptCore/ftl/FTLOSRExit.h', u'Source/JavaScriptCore/ftl/FTLOSRExitCompilationInfo.h', u'Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp', u'Source/JavaScriptCore/ftl/FTLSaveRestore.cpp', u'Source/JavaScriptCore/ftl/FTLSaveRestore.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/FTLValueFormat.cpp', u'Source/JavaScriptCore/ftl/FTLValueFormat.h', u'Source/JavaScriptCore/runtime/DataView.cpp', u'Source/JavaScriptCore/runtime/DataView.h', u'Source/JavaScriptCore/runtime/Options.h']" exit_code: 1
Source/JavaScriptCore/ftl/FTLStackMaps.h:49:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:66:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:88:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:95:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLCompile.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/ftl/FTLSaveRestore.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:43:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:58:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:65:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:75:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:83:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 12 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Filip Pizlo 2013-10-08 19:23:35 PDT
Created attachment 213742 [details]
the patch

Forgot some files.
Comment 4 WebKit Commit Bot 2013-10-08 19:24:38 PDT
Attachment 213742 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj', u'Source/JavaScriptCore/assembler/AbstractMacroAssembler.h', u'Source/JavaScriptCore/assembler/MacroAssembler.h', u'Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h', u'Source/JavaScriptCore/assembler/X86Assembler.h', u'Source/JavaScriptCore/dfg/DFGPlan.cpp', u'Source/JavaScriptCore/ftl/FTLCArgumentGetter.cpp', u'Source/JavaScriptCore/ftl/FTLCArgumentGetter.h', u'Source/JavaScriptCore/ftl/FTLCompile.cpp', u'Source/JavaScriptCore/ftl/FTLExitThunkGenerator.cpp', u'Source/JavaScriptCore/ftl/FTLExitThunkGenerator.h', u'Source/JavaScriptCore/ftl/FTLExitValue.h', u'Source/JavaScriptCore/ftl/FTLFail.cpp', u'Source/JavaScriptCore/ftl/FTLIntrinsicRepository.h', u'Source/JavaScriptCore/ftl/FTLJITCode.h', u'Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp', u'Source/JavaScriptCore/ftl/FTLOSRExit.h', u'Source/JavaScriptCore/ftl/FTLOSRExitCompilationInfo.h', u'Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp', u'Source/JavaScriptCore/ftl/FTLSaveRestore.cpp', u'Source/JavaScriptCore/ftl/FTLSaveRestore.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/FTLValueFormat.cpp', u'Source/JavaScriptCore/ftl/FTLValueFormat.h', u'Source/JavaScriptCore/runtime/DataView.cpp', u'Source/JavaScriptCore/runtime/DataView.h', u'Source/JavaScriptCore/runtime/Options.h', u'Source/WTF/ChangeLog', u'Source/WTF/wtf/PrintStream.cpp', u'Source/WTF/wtf/PrintStream.h', u'Source/WTF/wtf/RefCountedArray.h']" exit_code: 1
Source/JavaScriptCore/ftl/FTLStackMaps.h:49:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:66:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:88:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:95:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLCompile.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/ftl/FTLSaveRestore.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:43:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:58:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:65:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:75:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:83:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 12 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 5 kov's GTK+ EWS bot 2013-10-08 19:36:06 PDT
Comment on attachment 213742 [details]
the patch

Attachment 213742 [details] did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/3709407
Comment 6 Filip Pizlo 2013-10-08 19:52:45 PDT
Created attachment 213745 [details]
the patch

Attempt to fix gcc build.
Comment 7 WebKit Commit Bot 2013-10-08 19:55:52 PDT
Attachment 213745 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/ChangeLog', u'Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj', u'Source/JavaScriptCore/assembler/AbstractMacroAssembler.h', u'Source/JavaScriptCore/assembler/MacroAssembler.h', u'Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h', u'Source/JavaScriptCore/assembler/X86Assembler.h', u'Source/JavaScriptCore/dfg/DFGPlan.cpp', u'Source/JavaScriptCore/ftl/FTLCArgumentGetter.cpp', u'Source/JavaScriptCore/ftl/FTLCArgumentGetter.h', u'Source/JavaScriptCore/ftl/FTLCompile.cpp', u'Source/JavaScriptCore/ftl/FTLExitThunkGenerator.cpp', u'Source/JavaScriptCore/ftl/FTLExitThunkGenerator.h', u'Source/JavaScriptCore/ftl/FTLExitValue.h', u'Source/JavaScriptCore/ftl/FTLFail.cpp', u'Source/JavaScriptCore/ftl/FTLIntrinsicRepository.h', u'Source/JavaScriptCore/ftl/FTLJITCode.h', u'Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp', u'Source/JavaScriptCore/ftl/FTLOSRExit.h', u'Source/JavaScriptCore/ftl/FTLOSRExitCompilationInfo.h', u'Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp', u'Source/JavaScriptCore/ftl/FTLSaveRestore.cpp', u'Source/JavaScriptCore/ftl/FTLSaveRestore.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/FTLValueFormat.cpp', u'Source/JavaScriptCore/ftl/FTLValueFormat.h', u'Source/JavaScriptCore/runtime/DataView.cpp', u'Source/JavaScriptCore/runtime/DataView.h', u'Source/JavaScriptCore/runtime/Options.h', u'Source/WTF/ChangeLog', u'Source/WTF/wtf/PrintStream.cpp', u'Source/WTF/wtf/PrintStream.h', u'Source/WTF/wtf/RefCountedArray.h']" exit_code: 1
Source/JavaScriptCore/ftl/FTLStackMaps.h:49:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:66:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:88:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLStackMaps.h:95:  The parameter name "view" adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/ftl/FTLCompile.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/ftl/FTLSaveRestore.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:43:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:58:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:65:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:75:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Source/JavaScriptCore/ftl/FTLValueFormat.cpp:83:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 12 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 8 Filip Pizlo 2013-10-08 20:10:51 PDT
Created attachment 213746 [details]
the patch

Fix style.
Comment 9 Nadav Rotem 2013-10-09 17:12:34 PDT
You changed whitespace in Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h

The LLVM parts look good to me. 

Can you break this patch to multiple small patches. For example PrintStream.h can go in separately.
Comment 10 Filip Pizlo 2013-10-09 17:30:06 PDT
(In reply to comment #9)
> You changed whitespace in Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
> 

I will revert. 

> The LLVM parts look good to me. 
> 
> Can you break this patch to multiple small patches. For example PrintStream.h can go in separately.

I'll land the WTF changes separately. 

But we usually don't make a big deal of splitting work up into smaller patches. We prefer to have a one-to-one mapping between patches and commits, and we prefer for each commit to be thoroughly tested. So splitting up into patches, especially for complex changes like this, is not necessarily a win.