ruby/internal
Aaron Patterson c35fea8509
Specialize String#byteslice(a, b) (#9939)
* Specialize String#byteslice(a, b)

This adds a specialization for String#byteslice when there are two
parameters.

This makes our protobuf parser go from 5.84x slower to 5.33x slower

```
Comparison:
decode upstream (53738 bytes):     7228.5 i/s
decode protobuff (53738 bytes):     1236.8 i/s - 5.84x  slower

Comparison:
decode upstream (53738 bytes):     7024.8 i/s
decode protobuff (53738 bytes):     1318.5 i/s - 5.33x  slower
```

* Update yjit/src/codegen.rs

---------

Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
2024-02-13 16:20:27 +00:00
..
array.h Suppress array-bounds warnings from gcc 13 2023-11-07 23:19:51 +09:00
basic_operators.h Emit special instruction for array literal + .(hash|min|max) 2023-04-18 17:16:22 -07:00
bignum.h Stop exporting symbols for MJIT 2023-03-06 21:59:23 -08:00
bits.h Make popcount bit-masks stricter 2023-10-05 20:03:54 +09:00
class.h Set m_tbl right after allocation 2023-12-19 13:09:36 -08:00
cmdlineopt.h [Feature #19790] Rename BUGREPORT_PATH as CRASH_REPORT 2023-09-25 22:57:28 +09:00
compar.h Introduce BOP_CMP for optimized comparison 2022-12-06 12:37:23 -08:00
compile.h Move the PC regardless of the leaf flag (#8232) 2023-08-16 20:28:33 -07:00
compilers.h
complex.h
cont.h Free everything at shutdown 2023-12-07 15:52:35 -05:00
dir.h
enc.h
encoding.h Free everything at shutdown 2023-12-07 15:52:35 -05:00
enum.h
enumerator.h
error.h Free everything at shutdown 2023-12-07 15:52:35 -05:00
eval.h
file.h Revert "reuse open(2) from rb_file_load_ok on POSIX-like system" 2023-02-27 09:24:45 -08:00
fixnum.h
gc.h Fix crash when printing RGENGC_DEBUG=5 output from GC 2024-01-11 10:44:57 +11:00
hash.h Add rb_hash_free for the GC to use 2023-09-24 09:07:52 -04:00
imemo.h Parenthesize casted argument 2024-02-01 16:42:09 +09:00
inits.h Revert "Pass down "stack start" variables from closer to the top of the stack" 2024-01-12 17:58:54 +11:00
io.h Define `IO_WITHOUT_GVL` macro 2024-01-24 20:51:50 +09:00
load.h
loadpath.h
math.h
missing.h Free environ when RUBY_FREE_AT_EXIT 2024-01-11 10:09:53 -05:00
numeric.h Use `UNDEF_P` 2024-01-30 14:48:59 +09:00
object.h proc.c: get rid of `CLONESETUP` 2024-02-12 18:31:48 +01:00
parse.h Make lastline and nextline to be rb_parser_string 2024-01-23 08:58:16 +09:00
proc.h Stop exporting symbols for MJIT 2023-03-06 21:59:23 -08:00
process.h Put `rb_fork` back into process.c 2023-05-21 23:00:27 +09:00
ractor.h
random.h Free everything at shutdown 2023-12-07 15:52:35 -05:00
range.h Implement Struct on VWA 2023-06-05 15:47:16 -04:00
rational.h Don't redefine RB_OBJ_WRITE 2023-01-18 08:49:32 -05:00
re.h Stop allocating unused backref strings at `defined?` 2023-06-27 23:14:10 +09:00
ruby_parser.h Remove ruby object from string nodes 2024-02-09 14:20:17 +09:00
sanitizers.h Mark asan fake stacks during machine stack marking 2024-01-19 09:55:12 +11:00
serial.h
signal.h Move `posix_signal` declaration internal with prefix `ruby_` 2023-07-17 21:31:59 +09:00
st.h Move internal ST functions to internal/st.h 2023-12-25 10:41:12 -05:00
static_assert.h
string.h Specialize String#byteslice(a, b) (#9939) 2024-02-13 16:20:27 +00:00
struct.h Remove unused references to the transient heap 2023-07-13 14:48:14 -04:00
symbol.h Free everything at shutdown 2023-12-07 15:52:35 -05:00
thread.h Do not `poll` first 2024-01-05 05:51:25 +09:00
time.h
transcode.h Free everything at shutdown 2023-12-07 15:52:35 -05:00
util.h
variable.h Fix compaction for generic ivars 2023-11-24 13:29:04 -05:00
vm.h Correct free_on_exit env var to free_at_exit 2023-12-20 14:36:32 +09:00
warnings.h