Bug 224964

Summary: [JSC][Win] callOperationNoExceptionCheck() also needs to support operations that return SlowPathReturnType
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: JavaScriptCoreAssignee: Fujii Hironori <Hironori.Fujii>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, ews-watchlist, keith_miller, mark.lam, msaboff, ross.kirsling, saam, tzagallo, webkit-bug-importer, ysuzuki
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 224973    
Bug Blocks: 224920    
Attachments:
Description Flags
Patch
none
Patch for landing
none
Patch none

Description Fujii Hironori 2021-04-22 19:08:09 PDT
[JSC][Win] callOperationNoExceptionCheck() also needs to support operations that return SlowPathReturnType

r276456 started to use callOperationNoExceptionCheck instead of
callOperation. It made Windows ports crashing.

Bug 183655 added special support for x64 Windows. But, it added
only for callOperation, but for callOperationNoExceptionCheck.
callOperationNoExceptionCheck also should support x64 Windows.

Bug 183655 – JIT callOperation() needs to support operations that return SlowPathReturnType differently on Windows.
Bug 224920 – [JSC] Remove exception checks from non-throwing function calls in Baseline JIT
Bug 224952 – REGRESSION(r276456): Windows specific crash
Comment 1 Fujii Hironori 2021-04-22 19:16:03 PDT
Created attachment 426882 [details]
Patch
Comment 2 Yusuke Suzuki 2021-04-22 21:41:58 PDT
Comment on attachment 426882 [details]
Patch

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

r=me

> Source/JavaScriptCore/jit/JIT.h:827
> +        template<typename Type> static const bool is64BitType = sizeof(Type) <= 8;

Use static constexpr instead of static const
Comment 3 Fujii Hironori 2021-04-22 21:46:47 PDT
Created attachment 426887 [details]
Patch for landing
Comment 4 EWS 2021-04-22 22:17:08 PDT
Committed r276486 (236945@main): <https://commits.webkit.org/236945@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426887 [details].
Comment 5 Radar WebKit Bug Importer 2021-04-23 01:19:50 PDT
<rdar://problem/77061467>
Comment 6 WebKit Commit Bot 2021-04-23 07:04:35 PDT
Re-opened since this is blocked by bug 224973
Comment 7 Fujii Hironori 2021-04-23 13:00:39 PDT
I'm sorry for breaking AppleWin builds. Thank you for reverting my patch.

https://build.webkit.org/#/builders/67/builds/2248

  UnifiedSource-f2e18ffc-34.cpp
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001: An internal error has occurred in the compiler. [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001: (compiler file 'msc1.cpp', line 1529) [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001:  To work around this problem, try simplifying or changing the program near the locations listed above. [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001: Please choose the Technical Support command on the Visual C++ [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001:  Help menu, or open the Technical Support help file for more information [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001: Internal Compiler Error in C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\CL.exe.  You will be prompted to send an error report to Microsoft later. [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001: INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\CL.exe' [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001:     Please choose the Technical Support command on the Visual C++ [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-3.cpp(9,1): fatal error C1001:     Help menu, or open the Technical Support help file for more information [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001: An internal error has occurred in the compiler. [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001: (compiler file 'msc1.cpp', line 1529) [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001:  To work around this problem, try simplifying or changing the program near the locations listed above. [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001: Please choose the Technical Support command on the Visual C++ [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001:  Help menu, or open the Technical Support help file for more information [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001: Internal Compiler Error in C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\CL.exe.  You will be prompted to send an error report to Microsoft later. [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001: INTERNAL COMPILER ERROR in 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\CL.exe' [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001:     Please choose the Technical Support command on the Visual C++ [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
C:\cygwin\worker\win10-release\build\WebKitBuild\Release\DerivedSources\JavaScriptCore\unified-sources\UnifiedSource-3a3c4ec0-5.cpp(9,1): fatal error C1001:     Help menu, or open the Technical Support help file for more information [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]
cl : command line error D8040: error creating or communicating with child process [C:\cygwin\worker\win10-release\build\WebKitBuild\Release\Source\JavaScriptCore\JavaScriptCore.vcxproj]

I don't know what the problem is. I should try rewriting the patch without constexpr if.
Comment 8 Fujii Hironori 2021-04-23 13:42:23 PDT
Created attachment 426938 [details]
Patch
Comment 9 Fujii Hironori 2021-04-23 13:44:15 PDT
I downgraded my Visual Studio 2019 to version 16.3 on my PC. This internal compiler problem is caused by the template variable.
I rewrote the patch without the template variable.
Comment 10 Fujii Hironori 2021-04-23 14:01:17 PDT
Committed r276516 (236972@main): <https://commits.webkit.org/236972@main>