RESOLVED FIXED184702
Templatize CodePtr/Refs/FunctionPtrs with PtrTags.
https://bugs.webkit.org/show_bug.cgi?id=184702
Summary Templatize CodePtr/Refs/FunctionPtrs with PtrTags.
Mark Lam
Reported 2018-04-17 10:48:46 PDT
Attachments
proposed patch. (611.81 KB, patch)
2018-04-17 14:49 PDT, Mark Lam
no flags
proposed patch rebased. (611.78 KB, patch)
2018-04-17 14:53 PDT, Mark Lam
fpizlo: review+
patch for landing. (612.46 KB, patch)
2018-04-17 16:17 PDT, Mark Lam
no flags
patch for landing + speculative build fix for Windows. (612.78 KB, patch)
2018-04-17 17:38 PDT, Mark Lam
no flags
patch for landing + speculative build fix for Windows. (612.74 KB, patch)
2018-04-17 18:44 PDT, Mark Lam
ews-watchlist: commit-queue-
Mark Lam
Comment 1 2018-04-17 14:49:37 PDT
Created attachment 338151 [details] proposed patch.
EWS Watchlist
Comment 2 2018-04-17 14:52:24 PDT
Attachment 338151 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:355: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:221: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCallKey.h:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 3 in 187 files If any of these errors are false positives, please file a bug against check-webkit-style.
Mark Lam
Comment 3 2018-04-17 14:53:39 PDT
Created attachment 338152 [details] proposed patch rebased.
EWS Watchlist
Comment 4 2018-04-17 14:56:23 PDT
Attachment 338152 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:355: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:221: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCallKey.h:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 3 in 187 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 5 2018-04-17 15:13:33 PDT
Comment on attachment 338152 [details] proposed patch rebased. View in context: https://bugs.webkit.org/attachment.cgi?id=338152&action=review r=me. The suggestions about using alternate tags can be addressed in another bug. > Source/JavaScriptCore/bytecode/CallLinkInfo.h:332 > + CodeLocationLabel<JSEntryPtrTag> m_callReturnLocationOrPatchableJump; > + CodeLocationLabel<JSEntryPtrTag> m_hotPathBeginOrSlowPathStart; > + CodeLocationNearCall<JSEntryPtrTag> m_hotPathOther; I think these should be JSInternalPtrTag, since these are not being used as targets for a JS call. They are being used to point at some patchable stuff in the call IC. > Source/JavaScriptCore/ftl/FTLLazySlowPath.h:88 > + CodeLocationLabel<JSEntryPtrTag> m_done; I think this should be JSInternalPtrTag. It's not meant to point to the call entrypoint of anything. > Source/JavaScriptCore/jit/JITMathIC.h:67 > + CodeLocationLabel<JSEntryPtrTag> doneLocation() { return m_inlineStart.labelAtOffset(m_inlineSize); } > + CodeLocationLabel<JSEntryPtrTag> slowPathStartLocation() { return m_inlineStart.labelAtOffset(m_deltaFromStartToSlowPathStart); } > + CodeLocationCall<JSEntryPtrTag> slowPathCallLocation() { return m_inlineStart.callAtOffset(m_deltaFromStartToSlowPathCallLocation); } I think these should be JSInternal, since none of these are meant to call to the JS call entrypoint of any function. > Source/JavaScriptCore/jit/JITMathIC.h:250 > + CodeLocationLabel<JSEntryPtrTag> m_inlineStart; ISInternal, because this does not for doing JS calls > Source/JavaScriptCore/llint/LLIntData.cpp:78 > + JSEntryPtrTag, // llint_program_prologue > + JSEntryPtrTag, // llint_eval_prologue > + JSEntryPtrTag, // llint_module_program_prologue > + JSEntryPtrTag, // llint_function_for_call_prologue > + JSEntryPtrTag, // llint_function_for_construct_prologue > + JSEntryPtrTag, // llint_function_for_call_arity_check > + JSEntryPtrTag, // llint_function_for_construct_arity_check > + JSEntryPtrTag, // llint_generic_return_point > BytecodePtrTag, // llint_throw_from_slow_path_trampoline > ExceptionHandlerPtrTag, // llint_throw_during_call_trampoline > - CodePtrTag, // llint_native_call_trampoline > - CodePtrTag, // llint_native_construct_trampoline > - CodePtrTag, // llint_internal_function_call_trampoline > - CodePtrTag, // llint_internal_function_construct_trampoline > + JSEntryPtrTag, // llint_native_call_trampoline > + JSEntryPtrTag, // llint_native_construct_trampoline > + JSEntryPtrTag, // llint_internal_function_call_trampoline > + JSEntryPtrTag, // llint_internal_function_construct_trampoline It would be cool if we could give these JSInternal since these aren't meant to be used as targets of JS calls.
Mark Lam
Comment 6 2018-04-17 16:17:39 PDT
Created attachment 338157 [details] patch for landing.
EWS Watchlist
Comment 7 2018-04-17 16:21:18 PDT
Attachment 338157 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:355: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:221: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCallKey.h:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 3 in 187 files If any of these errors are false positives, please file a bug against check-webkit-style.
Mark Lam
Comment 8 2018-04-17 17:38:53 PDT
Created attachment 338170 [details] patch for landing + speculative build fix for Windows.
EWS Watchlist
Comment 9 2018-04-17 17:41:06 PDT
Attachment 338170 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:355: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:221: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCallKey.h:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 3 in 187 files If any of these errors are false positives, please file a bug against check-webkit-style.
Mark Lam
Comment 10 2018-04-17 18:44:49 PDT
Created attachment 338179 [details] patch for landing + speculative build fix for Windows.
EWS Watchlist
Comment 11 2018-04-17 18:46:58 PDT
Attachment 338179 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:355: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:221: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/ftl/FTLSlowPathCallKey.h:56: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 3 in 187 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 12 2018-04-17 20:05:00 PDT
Comment on attachment 338179 [details] patch for landing + speculative build fix for Windows. Attachment 338179 [details] did not pass jsc-ews (mac): Output: http://webkit-queues.webkit.org/results/7351388 New failing tests: stress/ftl-put-by-id-setter-exception-interesting-live-state.js.no-cjit-collect-continuously
Mark Lam
Comment 13 2018-04-17 20:28:36 PDT
(In reply to Build Bot from comment #12) > Comment on attachment 338179 [details] > patch for landing + speculative build fix for Windows. > > Attachment 338179 [details] did not pass jsc-ews (mac): > Output: http://webkit-queues.webkit.org/results/7351388 > > New failing tests: > stress/ftl-put-by-id-setter-exception-interesting-live-state.js.no-cjit- > collect-continuously I'm quite sure that this is not caused by my patch. I also cannot reproduce it locally. Will land shortly.
Mark Lam
Comment 14 2018-04-17 20:32:07 PDT
Fujii Hironori
Comment 15 2018-04-18 04:08:39 PDT
WinCairo builds get broken. Bug 184725
Tomas Popela
Comment 16 2018-04-18 06:04:18 PDT
I pushed a build fix for ARM in https://trac.webkit.org/r230762
Tomas Popela
Comment 17 2018-04-18 06:05:11 PDT
And also one small for GCC - https://trac.webkit.org/r230761 (that was triggered by our hardening flags in Fedora)
Tomas Popela
Comment 18 2018-04-18 06:32:34 PDT
And another build failure on ARM - bug 184730
Note You need to log in before you can comment on or make changes to this bug.