Skip to content

Tags: gettalong/ruby

Tags

v3_2_0_preview2

Toggle v3_2_0_preview2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
Remove as many unnecessary moves as possible (ruby#6342)

This commit does a bunch of stuff to try to eliminate as many
unnecessary mov instructions as possible.

First, it introduces the Insn::LoadInto instruction. Previously
when we needed a value to go into a specific register (like in
Insn::CCall when we're putting values into the argument registers
or in Insn::CRet when we're putting a value into the return
register) we would first load the value and then mov it into the
correct register. This resulted in a lot of duplicated work with
short live ranges since they basically immediately we unnecessary.
The new instruction accepts a destination and does not interact
with the register allocator at all, making it much more efficient.

We then use the new instruction when we're loading values into
argument registers for AArch64 or X86_64, and when we're returning
a value from AArch64. Notably we don't do it when we're returning
a value from X86_64 because everything can be accomplished with a
single mov anyway.

A couple of unnecessary movs were also present because when we
called the split_load_opnd function in a lot of split passes we
were loading all registers and instruction outputs. We no longer do
that.

This commit also makes it so that UImm(0) passes through the
Insn::Store split without attempting to be loaded, which allows it
can take advantage of the zero register. So now instead of mov-ing
0 into a register and then calling store, it just stores XZR.

v3_1_2

Toggle v3_1_2's commit message
teenyup

v3_0_4

Toggle v3_0_4's commit message
Fix dtoa buffer overrun

v2_7_6

Toggle v2_7_6's commit message
Fix dtoa buffer overrun

v2_6_10

Toggle v2_6_10's commit message
add tag v2_6_10

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v2_6_10@67958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

v3_2_0_preview1

Toggle v3_2_0_preview1's commit message

Verified

This commit was signed with the committer’s verified signature.
nobu Nobuyoshi Nakada
[DOC] Describe append_{c,cpp,ld}flags

v3_1_1

Toggle v3_1_1's commit message
teenyup

v3_1_0

Toggle v3_1_0's commit message
Revert "Do not include external library sources into packages"

This reverts commit a042043.

(cherry picked from commit 8325094)

v3_0_3

Toggle v3_0_3's commit message
 Fix integer overflow

    Make use of the check in rb_alloc_tmp_buffer2.

    https://hackerone.com/reports/1328463

    When parsing cookies, only decode the values

    Bump version

    Co-authored-by: Nobuyoshi Nakada <[email protected]>
    Co-authored-by: Yusuke Endoh <[email protected]>

v2_7_5

Toggle v2_7_5's commit message

Verified

This commit was signed with the committer’s verified signature.
unak usa
merge some parts of CGI 0.1.1

	Fix integer overflow

	Make use of the check in rb_alloc_tmp_buffer2.

	When parsing cookies, only decode the values

	Bump version