Bug 128758

Summary: GetMyArgumentsLength in FTL
Product: WebKit Reporter: Matthew Mirman <mmirman>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, fpizlo, mmaxfield, mmirman
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Added GetMyArgumentLength to FTL
none
Added GetMyArgumentLength to FTL
fpizlo: review-, fpizlo: commit-queue-
Added GetMyArgumentLength to FTL none

Description Matthew Mirman 2014-02-13 13:47:00 PST
Patch forthcoming.
Comment 1 Matthew Mirman 2014-02-13 13:52:48 PST
Created attachment 224102 [details]
Added GetMyArgumentLength to FTL
Comment 2 Matthew Mirman 2014-02-13 13:55:09 PST
Created attachment 224103 [details]
Added GetMyArgumentLength to FTL

Fixed patch
Comment 3 Filip Pizlo 2014-02-13 14:46:15 PST
Comment on attachment 224103 [details]
Added GetMyArgumentLength to FTL

View in context: https://bugs.webkit.org/attachment.cgi?id=224103&action=review

Sorry, just missed a detail.

> Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1841
> +    void compileGetArgumentsLength() 

Call this method "compileGetMyArgumentsLength"
Comment 4 Matthew Mirman 2014-02-13 15:25:04 PST
Created attachment 224120 [details]
Added GetMyArgumentLength to FTL

Fixed the issue with the name.
Comment 5 Filip Pizlo 2014-02-13 15:27:07 PST
We'll have to be careful as we proceed.  Supporting this opcode means that the FTL now supports "have arguments" functions, which means supporting captured variables.  It 's really weird.  I don't know how to explain it other than recommending that you read the code. :-/  And probably talk to Geoff, who was the last one to do things with the semantics of arguments.
Comment 6 WebKit Commit Bot 2014-02-13 16:17:44 PST
Comment on attachment 224120 [details]
Added GetMyArgumentLength to FTL

Clearing flags on attachment: 224120

Committed r164074: <http://trac.webkit.org/changeset/164074>
Comment 7 WebKit Commit Bot 2014-02-13 16:17:47 PST
All reviewed patches have been landed.  Closing bug.
Comment 8 Myles C. Maxfield 2014-02-13 16:54:24 PST
Looks like this broke the build:

/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu++11 -stdlib=libc++ -Wno-trigraphs -fno-exceptions -fno-rtti -fpascal-strings -O0 -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof -Wno-c++11-extensions -DHAVE_DTRACE=1 -DWEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST -DHAVE_HEADER_DETECTION_H -DJSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 -DENABLE_3D_RENDERING -DENABLE_BLOB -DENABLE_CACHE_PARTITIONING -DENABLE_CANVAS_PATH -DENABLE_CHANNEL_MESSAGING -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_COMPOSITING -DENABLE_CSS_EXCLUSIONS -DENABLE_CSS_FILTERS -DENABLE_CSS_REGIONS -DENABLE_CSS_SHAPES -DENABLE_CSS_SHAPE_INSIDE -DENABLE_CSS_STICKY_POSITION -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED -DENABLE_CURSOR_VISIBILITY -DENABLE_DASHBOARD_SUPPORT -DENABLE_DETAILS_ELEMENT -DENABLE_DOM4_EVENTS_CONSTRUCTOR -DENABLE_ENCRYPTED_MEDIA -DENABLE_ENCRYPTED_MEDIA_V2 -DENABLE_FILTERS -DENABLE_FULLSCREEN_API -DENABLE_GEOLOCATION -DENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING -DENABLE_ICONDATABASE -DENABLE_INDEXED_DATABASE -DENABLE_INDIE_UI -DENABLE_INPUT_TYPE_COLOR -DENABLE_INPUT_TYPE_COLOR_POPOVER -DENABLE_INSPECTOR -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_LEGACY_NOTIFICATIONS -DENABLE_LEGACY_VENDOR_PREFIXES -DENABLE_LEGACY_WEB_AUDIO -DENABLE_MATHML -DENABLE_MEDIA_CONTROLS_SCRIPT -DENABLE_MEDIA_SOURCE -DENABLE_METER_ELEMENT -DENABLE_MOUSE_CURSOR_SCALE -DENABLE_NOTIFICATIONS -DENABLE_PAGE_VISIBILITY_API -DENABLE_PDFKIT_PLUGIN -DENABLE_PROGRESS_ELEMENT -DENABLE_PROMISES -DENABLE_PUBLIC_SUFFIX_LIST -DENABLE_REQUEST_ANIMATION_FRAME -DENABLE_REMOTE_INSPECTOR -DENABLE_SHARED_WORKERS -DENABLE_SPEECH_SYNTHESIS -DENABLE_SQL_DATABASE -DENABLE_SUBPIXEL_LAYOUT -DENABLE_SUBTLE_CRYPTO -DENABLE_SVG_FONTS -DENABLE_TEMPLATE_ELEMENT -DENABLE_USERSELECT_ALL -DENABLE_VIDEO -DENABLE_VIDEO_TRACK -DENABLE_WEBGL -DENABLE_WEB_ANIMATIONS -DENABLE_WEB_AUDIO -DENABLE_WEB_SOCKETS -DENABLE_WORKERS -DENABLE_XHR_TIMEOUT -DENABLE_XSLT -DENABLE_FTL_JIT -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.Internal.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.10 -g -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-sign-conversion -I/Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/JavaScriptCore.hmap -I/Volumes/Data/home/mmaxfield/Build/Debug/include -I/Volumes/Data/home/mmaxfield/Build/Debug/DerivedSources/JavaScriptCore -I. -Iicu -I/Volumes/Data/home/mmaxfield/Build/Debug/usr/local/LLVMForJavaScriptCore/include -I/usr/local/LLVMForJavaScriptCore/include -I/Volumes/Data/home/mmaxfield/Build/Debug/usr/local/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain/usr/include -I/Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/DerivedSources/x86_64 -I/Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/DerivedSources -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -F/Volumes/Data/home/mmaxfield/Build/Debug -include /Volumes/Data/home/mmaxfield/Build/PrecompiledHeaders/JavaScriptCorePrefix-dppdbpcpaqoxoxhbuowgnypibjfk/JavaScriptCorePrefix.h -MMD -MT dependencies -MF /Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/FTLLowerDFGToLLVM.d --serialize-diagnostics /Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/FTLLowerDFGToLLVM.dia -c /Volumes/Data/home/mmaxfield/src/WebKit/OpenSource/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp -o /Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/FTLLowerDFGToLLVM.o
/Volumes/Data/home/mmaxfield/src/WebKit/OpenSource/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1806:47: error: no member named 'codeOrigin' in 'JSC::DFG::Node'
        TypedPointer reg = addressFor(m_node->codeOrigin.stackOffset() + JSStack::ArgumentCount);
Comment 9 Filip Pizlo 2014-02-13 18:22:18 PST
(In reply to comment #8)
> Looks like this broke the build:
> 
> /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=gnu++11 -stdlib=libc++ -Wno-trigraphs -fno-exceptions -fno-rtti -fpascal-strings -O0 -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof -Wno-c++11-extensions -DHAVE_DTRACE=1 -DWEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST -DHAVE_HEADER_DETECTION_H -DJSC_OBJC_API_AVAILABLE_MAC_OS_X_1080 -DENABLE_3D_RENDERING -DENABLE_BLOB -DENABLE_CACHE_PARTITIONING -DENABLE_CANVAS_PATH -DENABLE_CHANNEL_MESSAGING -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_COMPOSITING -DENABLE_CSS_EXCLUSIONS -DENABLE_CSS_FILTERS -DENABLE_CSS_REGIONS -DENABLE_CSS_SHAPES -DENABLE_CSS_SHAPE_INSIDE -DENABLE_CSS_STICKY_POSITION -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED -DENABLE_CURSOR_VISIBILITY -DENABLE_DASHBOARD_SUPPORT -DENABLE_DETAILS_ELEMENT -DENABLE_DOM4_EVENTS_CONSTRUCTOR -DENABLE_ENCRYPTED_MEDIA -DENABLE_ENCRYPTED_MEDIA_V2 -DENABLE_FILTERS -DENABLE_FULLSCREEN_API -DENABLE_GEOLOCATION -DENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING -DENABLE_ICONDATABASE -DENABLE_INDEXED_DATABASE -DENABLE_INDIE_UI -DENABLE_INPUT_TYPE_COLOR -DENABLE_INPUT_TYPE_COLOR_POPOVER -DENABLE_INSPECTOR -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_LEGACY_NOTIFICATIONS -DENABLE_LEGACY_VENDOR_PREFIXES -DENABLE_LEGACY_WEB_AUDIO -DENABLE_MATHML -DENABLE_MEDIA_CONTROLS_SCRIPT -DENABLE_MEDIA_SOURCE -DENABLE_METER_ELEMENT -DENABLE_MOUSE_CURSOR_SCALE -DENABLE_NOTIFICATIONS -DENABLE_PAGE_VISIBILITY_API -DENABLE_PDFKIT_PLUGIN -DENABLE_PROGRESS_ELEMENT -DENABLE_PROMISES -DENABLE_PUBLIC_SUFFIX_LIST -DENABLE_REQUEST_ANIMATION_FRAME -DENABLE_REMOTE_INSPECTOR -DENABLE_SHARED_WORKERS -DENABLE_SPEECH_SYNTHESIS -DENABLE_SQL_DATABASE -DENABLE_SUBPIXEL_LAYOUT -DENABLE_SUBTLE_CRYPTO -DENABLE_SVG_FONTS -DENABLE_TEMPLATE_ELEMENT -DENABLE_USERSELECT_ALL -DENABLE_VIDEO -DENABLE_VIDEO_TRACK -DENABLE_WEBGL -DENABLE_WEB_ANIMATIONS -DENABLE_WEB_AUDIO -DENABLE_WEB_SOCKETS -DENABLE_WORKERS -DENABLE_XHR_TIMEOUT -DENABLE_XSLT -DENABLE_FTL_JIT -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.Internal.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.10 -g -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-sign-conversion -I/Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/JavaScriptCore.hmap -I/Volumes/Data/home/mmaxfield/Build/Debug/include -I/Volumes/Data/home/mmaxfield/Build/Debug/DerivedSources/JavaScriptCore -I. -Iicu -I/Volumes/Data/home/mmaxfield/Build/Debug/usr/local/LLVMForJavaScriptCore/include -I/usr/local/LLVMForJavaScriptCore/include -I/Volumes/Data/home/mmaxfield/Build/Debug/usr/local/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain/usr/include -I/Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/DerivedSources/x86_64 -I/Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/DerivedSources -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -F/Volumes/Data/home/mmaxfield/Build/Debug -include /Volumes/Data/home/mmaxfield/Build/PrecompiledHeaders/JavaScriptCorePrefix-dppdbpcpaqoxoxhbuowgnypibjfk/JavaScriptCorePrefix.h -MMD -MT dependencies -MF /Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/FTLLowerDFGToLLVM.d --serialize-diagnostics /Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/FTLLowerDFGToLLVM.dia -c /Volumes/Data/home/mmaxfield/src/WebKit/OpenSource/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp -o /Volumes/Data/home/mmaxfield/Build/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/FTLLowerDFGToLLVM.o
> /Volumes/Data/home/mmaxfield/src/WebKit/OpenSource/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1806:47: error: no member named 'codeOrigin' in 'JSC::DFG::Node'
>         TypedPointer reg = addressFor(m_node->codeOrigin.stackOffset() + JSStack::ArgumentCount);

Yeah.  This is a simple fix: replace codeOrigin with origin.semantic.  Will land shortly.
Comment 10 Filip Pizlo 2014-02-13 18:28:53 PST
Build fix landed in http://trac.webkit.org/changeset/164087