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

YJIT: A64: Avoid intermediate register in opt_and and friends #10509

Merged
merged 1 commit into from Apr 15, 2024

Conversation

XrXr
Copy link
Member

@XrXr XrXr commented Apr 11, 2024

Same idea as the x64 equivalent in c2622b5, removing the register
shuffle coming from the pop two, push one stack motion these VM
instructions perform.

# Insn: 0004 opt_or (stack_size: 2)
- orr x11, x1, x9
- mov x1, x11
+ orr x1, x1, x9

Same idea as the x64 equivalent in c2622b5, removing the register
shuffle coming from the pop two, push one stack motion these VM
instructions perform.

```
  # Insn: 0004 opt_or (stack_size: 2)
  - orr x11, x1, x9
  - mov x1, x11
  + orr x1, x1, x9
```
@matzbot matzbot requested a review from a team April 11, 2024 22:32
Copy link

launchable-app bot commented Apr 11, 2024

Launchable Report

❌ Test session #2806658 failedos:macos-arm-oss test_opts:--enable-yjit:dev test_task:checkdetails on CI
🔔 no issues ✖️1 test failed ✔️25737 tests passed

Passed test sessions

✅ Test session #2806642 passed os:macos-arm-oss test_opts: test_task:checkdetails on CI
✅ Test session #2806643 passed os:macos-arm-oss test_opts:--enable-yjit test_task:checkdetails on CI
✅ Test session #2806644 passed os:macos-arm-oss test_opts:--repeat-count:2 test_task:test-alldetails on CI
✅ Test session #2806646 passed os:ubuntu-22.04 test_opts:--enable-shared--enable-load-relative test_task:checkdetails on CI
✅ Test session #2806647 passed os:ubuntu-22.04 test_opts:--disable-yjit test_task:checkdetails on CI
✅ Test session #2806649 passed os:ubuntu-20.04 test_opts: test_task:checkdetails on CI
✅ Test session #2806651 passed os:ubuntu-22.04 test_opts:cppflags:-DVM_CHECK_MODE test_task:checkdetails on CI
✅ Test session #2806653 passed os:macos-12 test_opts: test_task:checkdetails on CI
✅ Test session #2806654 passed os:macos-13 test_opts: test_task:checkdetails on CI
✅ Test session #2806656 passed os:ubuntu-22.04 test_opts: test_task:checkdetails on CI
✅ Test session #2806665 passed os:ubuntu-20.04 test_opts:"RUSTC:rustc+1.58.0" test_task:checkdetails on CI
✅ Test session #2806676 passed os:ubuntu-20.04 test_opts:--enable-yjit:dev test_task:checkdetails on CI
✅ Test session #2806677 passed os:ubuntu-20.04 test_opts:--enable-yjit:dev test_task:checkdetails on CI
✅ Test session #2806828 passed os:macos-arm-oss test_opts:--enable-yjit:dev test_task:checkdetails on CI

Build: refs_pull_10509_merge_e29e6673ff7cb190f1f44491ed3792714b995bd2

@maximecb maximecb merged commit 2eafed0 into ruby:master Apr 15, 2024
100 checks passed
@XrXr XrXr deleted the yjit-a64-and-intermediate branch April 15, 2024 16:33
tenderlove added a commit to tenderlove/ruby that referenced this pull request Apr 15, 2024
* master: (29 commits)
  Not all `nm`s support the `--help` option
  Emit a performance warning when redefining specially optimized methods
  YJIT: A64: Avoid intermediate register in `opt_and` and friends (ruby#10509)
  [ruby/reline] Remove not implemented method (ruby/reline#680)
  [ruby/reline] Fix vi_to_column which was broken (ruby/reline#679)
  Include more debug information in test_uplus_minus
  [Universal parser] DeVALUE of p->debug_lines and ast->body.script_lines
  Add more assertions in `test_uplus_minus`
  `super{}` doesn't use block
  fix incorrect warning.
  Update default gems list at fc36394 [ci skip]
  [ruby/optparse] bump up to 0.5.0
  show warning for unused block
  Emit `warn` event for duplicated hash keys on ripper
  [ruby/reline] Refactored Default Key Bindings (ruby/reline#678)
  [ruby/reline] Refactor waiting_proc and waiting_operator_proc (ruby/reline#649)
  [pty] Fix missing `or`
  [pty] Fix `ptsname_r` fallback
  [ruby/irb] Allow defining custom commands in IRB (ruby/irb#886)
  [ruby/reline] Support `menu-complete-backward` command for upward navigation (ruby/reline#677)
  ...
artur-intech pushed a commit to artur-intech/ruby that referenced this pull request Apr 26, 2024
…#10509)

Same idea as the x64 equivalent in c2622b5, removing the register
shuffle coming from the pop two, push one stack motion these VM
instructions perform.

```
  # Insn: 0004 opt_or (stack_size: 2)
  - orr x11, x1, x9
  - mov x1, x11
  + orr x1, x1, x9
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants