Ruby performance gains on SPARC

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

http://blogs.sun.com/d/entry/ruby_performance_gains_on_sparc

e$B$K$h$k$He(BSPARCe$B$G$Oe(BEXEC_TAGe$B$NA0$Ne(BFLUSH_REGISTER_WINDOWSe$B$OITMWe(B
e$B$N$h$&$G$9!#$G!"$3$l$r<B:]$K9T$C$F$$$k$N$O:#$^$Ge(BSPARCe$B$He(BIA64
[email protected][email protected]$C$?$N$G$9$,!"<j6a$Ke(BIA64e$B%5!<%P$,$"$k?M$O!"e(BEXEC_TAG()e$B$+e(B
e$B$ie(BFLUSH_REGISTER_WINDOWSe$B$r:o$C$F$bF0:n$9$k$+$I$&$+3NG’$7$F$$e(B
[email protected]$1$^$;$s$+!)e(B

In article [email protected],
Yukihiro M. [email protected] writes:

http://blogs.sun.com/d/entry/ruby_performance_gains_on_sparc

e$B$K$h$k$He(BSPARCe$B$G$Oe(BEXEC_TAGe$B$NA0$Ne(BFLUSH_REGISTER_WINDOWSe$B$OITMWe(B
e$B$N$h$&$G$9!#$G!"$3$l$r<B:]$K9T$C$F$$$k$N$O:#$^$Ge(BSPARCe$B$He(BIA64
[email protected][email protected]$C$?$N$G$9$,!"<j6a$Ke(BIA64e$B%5!<%P$,$"$k?M$O!"e(BEXEC_TAG()e$B$+e(B
e$B$ie(BFLUSH_REGISTER_WINDOWSe$B$r:o$C$F$bF0:n$9$k$+$I$&$+3NG’$7$F$$e(B
[email protected]$1$^$;$s$+!)e(B

1.8 e$B$He(B 1.9 e$B$G;n$7$F$_$^$7$?$,!"e(Bmake test, test-all
e$B$O$H$/$Ke(B
e$BJQ2=$7$^$;$s$M!#e(B

e$B$"$H$O!"$=$Ne(B 2e$B2U=j$Ke(B FLUSH_REGISTER_WINDOWS e$B$rF~$l$?e(B
knu e$B$5e(B
e$B$s$K?R$M$k$H$+!#e(B

1.8:
Index: eval.c

— eval.c (revision 15781)
+++ eval.c (working copy)
@@ -1028,7 +1028,7 @@ static struct tag prot_tag;
#define PROT_LAMBDA INT2FIX(2) /
5 /
#define PROT_YIELD INT2FIX(3) /
7 */

-#define EXEC_TAG() (FLUSH_REGISTER_WINDOWS, ruby_setjmp(((void)0),
prot_tag->buf))
+#define EXEC_TAG() (ruby_setjmp(((void)0), prot_tag->buf))

#define JUMP_TAG(st) do {
ruby_frame = prot_tag->frame;
@@ -10330,7 +10330,7 @@ rb_thread_switch(n)
}

#define THREAD_SAVE_CONTEXT(th) \

  • (rb_thread_switch((FLUSH_REGISTER_WINDOWS,
    ruby_setjmp(rb_thread_save_context(th), (th)->context))))
  • (rb_thread_switch((ruby_setjmp(rb_thread_save_context(th),
    (th)->context))))

NORETURN(static void rb_thread_restore_context _((rb_thread_t,int)));
NORETURN(NOINLINE(static void
rb_thread_restore_context_0(rb_thread_t,int,void*)));

1.9:
Index: eval_intern.h

— eval_intern.h (revision 15777)
+++ eval_intern.h (working copy)
@@ -143,7 +143,7 @@ char *strrchr(const char *, const char);
#define POP_TAG() TH_POP_TAG()

#define TH_EXEC_TAG() \

  • (FLUSH_REGISTER_WINDOWS, ruby_setjmp(_th->tag->buf))
  • (ruby_setjmp(_th->tag->buf))

#define EXEC_TAG()
TH_EXEC_TAG()

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:34057] Re: Ruby performance gains on SPARC”
on Sat, 15 Mar 2008 01:34:03 +0900, Tanaka A. [email protected]
writes:

|1.8 e$B$He(B 1.9 e$B$G;n$7$F$_$^$7$?$,!"e(Bmake test, test-all e$B$O$H$/$Ke(B
|e$BJQ2=$7$^$;$s$M!#e(B

e$B$"$j$,$H$&$4$6$$$^$9!#e(B

|e$B$"$H$O!"$=$Ne(B 2e$B2U=j$Ke(B FLUSH_REGISTER_WINDOWS e$B$rF~$l$?e(B knu e$B$5e(B
|e$B$s$K?R$M$k$H$+!#e(B

e$B$I$&$G$7$g$&!)e(B > knue$B$5$s!#e(B

 返事が遅れてすみません。

At Sat, 15 Mar 2008 12:03:12 +0900,
matz wrote:

|あとは、その 2箇所に FLUSH_REGISTER_WINDOWS を入れた knu さ
|んに尋ねるとか。

どうでしょう? > knuさん。

 確かに不要そうですね。コミットしてください。

e$BEOJUE/Li$G$9!#e(B

ruby 1.9 trunk r15781 e$B$G;n$7$F$_$^$7$?!#e(B
e$BFC$KLdBj$J$/F0$-$^$7$?!#e(B

HP-UX 11.23
e$B%3%s%Q%$%k$Oe(B 64bit e$B%b!<%Ie(B(CFLAGS="-O +DD64")

e$B%F%9%H$Oe(B make test e$B$re(B 10 e$B2s7+$jJV$7!#e(B

In message “[ruby-dev:34058] Re: Ruby performance gains on SPARC”
on 08/03/15, Yukihiro M. e$B$5$se(B writes:

|e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
|
|In message “Re: [ruby-dev:34057] Re: Ruby performance gains on SPARC”
| on Sat, 15 Mar 2008 01:34:03 +0900, Tanaka A. [email protected] writes:
|
||1.8 e$B$He(B 1.9 e$B$G;n$7$F$_$^$7$?$,!“e(Bmake test, test-all e$B$O$H$/$Ke(B
||e$BJQ2=$7$^$;$s$M!#e(B
|
|e$B$”$j$,$H$&$4$6$$$^$9!#e(B
|
||e$B$"$H$O!"$=$Ne(B 2e$B2U=j$Ke(B FLUSH_REGISTER_WINDOWS e$B$rF~$l$?e(B knu e$B$5e(B
||e$B$s$K?R$M$k$H$+!#e(B
|
|e$B$I$&$G$7$g$&!)e(B > knue$B$5$s!#e(B

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs