RJIT: Always enable --rjit-dump-disasm

This commit is contained in:
Takashi Kokubun 2023-03-10 11:27:04 -08:00
parent d0b8bdb392
commit d5b7c8a972
2 changed files with 24 additions and 15 deletions

View File

@ -3867,11 +3867,11 @@ AC_ARG_ENABLE(rjit,
AS_CASE(["$RJIT_SUPPORT"],
[yes|dev], [
# Link libcapstone for --rjit-dump-disasm
AC_CHECK_LIB([capstone], [cs_disasm])
AS_CASE(["$RJIT_SUPPORT"],
[dev], [
# Link libcapstone for --rjit-dump-disasm
AC_CHECK_LIB([capstone], [cs_disasm])
# Enable RJIT_STATS (vm_insns_count of --rjit-stats)
AC_DEFINE(RUBY_DEBUG, 1)
])

View File

@ -14,15 +14,7 @@ The following platforms are assumed to work. `linux-x86_64` is tested on CI.
* OS: Linux, macOS, BSD
* Arch: x86\_64
## Developing RJIT
### Bindgen
If you see an "RJIT bindgen" GitHub Actions failure, please commit the `git diff` shown on the failed job.
For doing the same thing locally, run `make rjit-bindgen` after installing libclang.
macOS seems to have libclang by default. On Ubuntu, you can install it with `apt install libclang1`.
## configure
### --enable-rjit
On supported platforms, `--enable-rjit` is set by default. You usually don't need to specify this.
@ -30,7 +22,24 @@ You may still manually pass `--enable-rjit` to try RJIT on unsupported platforms
### --enable-rjit=dev
`--enable-rjit=dev` makes the interpreter slower, but enables the following two features:
`--enable-rjit=dev` makes the interpreter slower, but enables `ruby --rjit-stats` to work.
* `--rjit-dump-disasm`: Dump all JIT code.
* `--rjit-stats`: Print RJIT stats.
## make
### rjit-bindgen
If you see an "RJIT bindgen" GitHub Actions failure, please commit the `git diff` shown on the failed job.
For doing the same thing locally, run `make rjit-bindgen` after installing libclang.
macOS seems to have libclang by default. On Ubuntu, you can install it with `apt install libclang1`.
## ruby
### --rjit-stats
This prints RJIT stats at exit. Available with `--enable-rjit=dev` on configure.
### --rjit-dump-disasm
This dumps all JIT code. You need to install libcapstone before configure.
* Ubuntu: `sudo apt-get install -y libcapstone-dev`
* macOS: `brew install capstone`