Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[buildbot] Detailed bot information should be displayed inside PrintConfiguration step instead of workers page #96

Merged
merged 0 commits into from Jan 25, 2022

Conversation

aj062
Copy link
Member

@aj062 aj062 commented Jan 25, 2022

dc92725

[buildbot] Detailed bot information should be displayed inside PrintConfiguration step instead of workers page
https://bugs.webkit.org/show_bug.cgi?id=235583

Reviewed by Jonathan Bedard and Ryan Haddad.

* Tools/CISupport/build-webkit-org/steps.py:
(PrintConfiguration): run 'system_profiler SPSoftwareDataType SPHardwareDataType' command in PrintConfiguration.
* Tools/CISupport/ews-build/steps.py: Ditto.
* Tools/CISupport/ews-build/steps_unittest.py: Updated unit-tests.
* Tools/CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests.


Canonical link: https://commits.webkit.org/246391@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288563 268f45cc-cd09-0410-ab3c-d52691b4dbfc

@aj062
Copy link
Member Author

aj062 commented Jan 25, 2022

Sample build: https://ews-build.webkit-uat.org/#/builders/8/builds/440/steps/4/logs/stdio (scroll-up to see system_profiler command)

@aj062 aj062 merged commit dc92725 into WebKit:main Jan 25, 2022
@aj062
Copy link
Member Author

aj062 commented Jan 25, 2022

@aj062 aj062 deleted the eng/235583 branch January 25, 2022 18:31
webkit-early-warning-system pushed a commit to MenloDorian/Webkit that referenced this pull request Jun 23, 2022
https://bugs.webkit.org/show_bug.cgi?id=241905

Reviewed by Yusuke Suzuki.

offlineasm used to emit this LLInt code:
    ".loc 1 996\n"        "ldr x19, [x0] \n"                   // LowLevelInterpreter.asm:996
    ".loc 1 997\n"        "ldr x20, [x0, WebKit#8] \n"               // LowLevelInterpreter.asm:997
    ".loc 1 998\n"        "ldr x21, [x0, WebKit#16] \n"              // LowLevelInterpreter.asm:998
    ".loc 1 999\n"        "ldr x22, [x0, WebKit#24] \n"              // LowLevelInterpreter.asm:999
    ...
    ".loc 1 1006\n"       "ldr d8, [x0, WebKit#80] \n"               // LowLevelInterpreter.asm:1006
    ".loc 1 1007\n"       "ldr d9, [x0, WebKit#88] \n"               // LowLevelInterpreter.asm:1007
    ".loc 1 1008\n"       "ldr d10, [x0, WebKit#96] \n"              // LowLevelInterpreter.asm:1008
    ".loc 1 1009\n"       "ldr d11, [x0, WebKit#104] \n"             // LowLevelInterpreter.asm:1009
    ...

Now, it can emit this instead:
    ".loc 1 996\n"        "ldp x19, x20, [x0, #0] \n"          // LowLevelInterpreter.asm:996
    ".loc 1 997\n"        "ldp x21, x22, [x0, WebKit#16] \n"         // LowLevelInterpreter.asm:997
    ...
    ".loc 1 1001\n"       "ldp d8, d9, [x0, WebKit#80] \n"           // LowLevelInterpreter.asm:1001
    ".loc 1 1002\n"       "ldp d10, d11, [x0, WebKit#96] \n"         // LowLevelInterpreter.asm:1002
    ...

Also, there was some code that kept recomputing the base address of a sequence of load/store
instructions.  For example,
    ".loc 6 902\n"        "add x13, sp, x10, lsl WebKit#3 \n"        // WebAssembly.asm:902
                          "ldr x0, [x13, WebKit#48] \n"
                          "add x13, sp, x10, lsl WebKit#3 \n"
                          "ldr x1, [x13, WebKit#56] \n"
                          "add x13, sp, x10, lsl WebKit#3 \n"
                          "ldr x2, [x13, WebKit#64] \n"
                          "add x13, sp, x10, lsl WebKit#3 \n"
                          "ldr x3, [x13, WebKit#72] \n"
    ...

For such places, we observe that the base address is the same for every load/store instruction
in the sequence, and precompute it in the LLInt asm code to help out the offline asm.  This
allows the offlineasm to now emit this more efficient code instead:
    ".loc 6 896\n"        "add x10, sp, x10, lsl WebKit#3 \n"        // WebAssembly.asm:896
    ".loc 6 898\n"        "ldp x0, x1, [x10, WebKit#48] \n"          // WebAssembly.asm:898
                          "ldp x2, x3, [x10, WebKit#64] \n"
    ...

* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:
* Source/JavaScriptCore/llint/WebAssembly.asm:
* Source/JavaScriptCore/offlineasm/arm64.rb:
* Source/JavaScriptCore/offlineasm/instructions.rb:

Canonical link: https://commits.webkit.org/251799@main
webkit-early-warning-system pushed a commit to justinmichaud/WebKit that referenced this pull request Aug 3, 2022
https://bugs.webkit.org/show_bug.cgi?id=243358

Reviewed by Yusuke Suzuki.

Add support for ARM64 disassembler comments in jit code. We use a global map of code
address -> comments, which is updated during linking. Comments do nothing when
dumpDisassembly=0.

Also, we opt-out some MacroAssembler files from unified builds to fix build
errors caused by a RegisterID symbol conflict that this patch accidentally exposes.

Here is an example of a comment:

```
comment(scratchGPR, " = callFrame->callee->executableOrRareData");
emitGetFromCallFrameHeaderPtr(CallFrameSlot::callee, scratchGPR);
loadPtr(Address(scratchGPR, JSFunction::offsetOfExecutableOrRareData()), scratchGPR);
auto hasExecutable = branchTestPtr(Zero, scratchGPR, TrustedImm32(JSFunction::rareDataTag));
loadPtr(Address(scratchGPR, FunctionRareData::offsetOfExecutable() - JSFunction::rareDataTag), scratchGPR);
hasExecutable.link(this);
comment(scratchGPR, " = (", scratchGPR, ": Executable)->codeBlock");
loadPtr(Address(scratchGPR, FunctionExecutable::offsetOfCodeBlockFor(kind)), scratchGPR);
```

becomes

```
<44> 0x12e51c02c:    ldur     x1, [fp, WebKit#24]; %x1 = callFrame->callee->executableOrRareData
<48> 0x12e51c030:    ldur     x1, [x1, WebKit#24]
<52> 0x12e51c034:    tbz      x1, #0, 0x12e51c03c -> <60>
<56> 0x12e51c038:    ldur     x1, [x1, WebKit#47]
<60> 0x12e51c03c:    ldur     x1, [x1, WebKit#96]; %x1 = (%x1: Executable)->codeBlock
```

* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/Sources.txt:
* Source/JavaScriptCore/assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::comment):
(JSC::AbstractMacroAssembler::lineComment):
(JSC::AbstractMacroAssembler::commentImpl):
* Source/JavaScriptCore/assembler/Comments.cpp: Copied from Source/JavaScriptCore/disassembler/ARM64Disassembler.cpp.
(JSC::CommentRegistry::initialize):
(JSC::CommentRegistry::singleton):
* Source/JavaScriptCore/assembler/Comments.h: Added.
(JSC::CommentRegistry::WTF_RETURNS_LOCK):
(JSC::CommentRegistry::registerCodeRange):
(JSC::CommentRegistry::unregisterCodeRange):
(JSC::CommentRegistry::comment):
(JSC::CommentRegistry::orderedKey):
(JSC::CommentRegistry::orderedKeyInverse):
* Source/JavaScriptCore/assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::linkCode):
(JSC::LinkBuffer::linkComments):
* Source/JavaScriptCore/assembler/LinkBuffer.h:
* Source/JavaScriptCore/disassembler/ARM64Disassembler.cpp:
(JSC::tryToDisassemble):
* Source/JavaScriptCore/jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::jitAssertCodeBlockOnCallFrameWithType):
(JSC::AssemblyHelpers::jitAssertCodeBlockMatchesCurrentCalleeCodeBlockOnCallFrame):
* Source/JavaScriptCore/jit/ExecutableAllocator.cpp:
(JSC::ExecutableMemoryHandle::~ExecutableMemoryHandle):
* Source/JavaScriptCore/runtime/InitializeThreading.cpp:
(JSC::initialize):

remove unified sources for macroasm

Canonical link: https://commits.webkit.org/253085@main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants