Tietew です。

[ruby-dev:14592] の話の掘り起こしなのですが,-Og (グローバルな最
適化) を有効にして make test および unit test が通ったので報告し
ます。

ただ一カ所 stack_extend がインライン化されてしまう影響で 
rb_thread_restore_context が無限ループに入ってしまう問題がありま
したが __declspec(noinline) (インライン化抑止) で解決しました。
添付のパッチを参考にして下さい。

-Og を有効にすると明らかに速度アップするので是非。

*** ruby test/runner.rb の結果:
  -O2b2xg-
    Finished in 479.068 seconds.
  -O2b2 -GF
    Finished in 331.707 seconds.

P.S. こんな Failure が出たのですが [ruby-dev:22235] block to
method by proc の影響?
|   1) Failure:
| test_hashing(Test::Unit::Util::TC_ProcWrapper) [../ruby-1.8/test/testunit/util/test_procwrapper.rb:25]:
| The original and munged procs should not have the same hash.
| <49438256> expected to be != to
| <49438256>.


Index: eval.c
===================================================================
RCS file: /src/ruby/eval.c,v
retrieving revision 1.602
diff -p -u -2 -r1.602 eval.c
--- eval.c      11 Dec 2003 21:06:14 -0000      1.602
+++ eval.c      15 Dec 2003 05:45:38 -0000
@@ -8447,5 +8447,9 @@ rb_thread_switch(n)

 NORETURN(static void rb_thread_restore_context _((rb_thread_t,int)));
+NORETURN(static void stack_extend _((rb_thread_t,int)));

+#ifdef _MSC_VER
+__declspec(noinline)   /* prevent from global optimization */
+#endif
 static void
 stack_extend(th, exit)
Index: win32/Makefile.sub
===================================================================
RCS file: /src/ruby/win32/Makefile.sub,v
retrieving revision 1.57
diff -p -u -2 -r1.57 Makefile.sub
--- win32/Makefile.sub  1 Dec 2003 00:30:37 -0000       1.57
+++ win32/Makefile.sub  15 Dec 2003 05:45:39 -0000
@@ -65,8 +65,10 @@ DEBUGFLAGS = -Zi
 !endif
 !if !defined(OPTFLAGS)
-OPTFLAGS = -O2b2xg-
+OPTFLAGS = -O2b2 -GF
 !endif
+!if !defined(OS) || !defined(RT)
 OS = mswin32
 RT = msvcrt
+!endif

 !ifndef RUBY_SO_NAME
@@ -109,5 +111,5 @@ LD = $(CC)
 LDSHARED = $(LD) -LD
 XCFLAGS = -DRUBY_EXPORT
-LDFLAGS = -link -incremental:no -pdb:none
+LDFLAGS = -link -incremental:no -debug -opt:ref -opt:icf -map
 DLDFLAGS = $(LDFLAGS) -dll
 XLDFLAGS = -stack:$(STACK)


―[ Tietew ]――――――――――――――――――――――――――
 メ : tietew / tietew.net / tietew / raug.net / tietew / masuclub.net
ホペ: http://www.tietew.net/     Tietew Windows Lab.
      http://www.masuclub.net/   鱒倶楽部
指紋: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA