[前][次][番号順一覧][スレッド一覧]

ruby-changes:26116

From: ko1 <ko1@a...>
Date: Tue, 4 Dec 2012 13:58:02 +0900 (JST)
Subject: [ruby-changes:26116] ko1:r38173 (trunk): * vm_opts.h: enable optimization - operand unifications.

ko1	2012-12-04 13:57:50 +0900 (Tue, 04 Dec 2012)

  New Revision: 38173

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=38173

  Log:
    * vm_opts.h: enable optimization - operand unifications.
      Operand unification technique enable to combine
      an instruction and specific operands and make new
      instruction.
    * defs/opt_operand.def: add several configuration
      of operand unifications.
    * insns.def: use `int' instead to suppress warning.

  Modified files:
    trunk/ChangeLog
    trunk/defs/opt_operand.def
    trunk/insns.def
    trunk/vm_opts.h

Index: defs/opt_operand.def
===================================================================
--- defs/opt_operand.def	(revision 38172)
+++ defs/opt_operand.def	(revision 38173)
@@ -7,53 +7,16 @@
 #  wildcard: *
 #
 
-__END__
+getlocal *, 0
+getlocal *, 1
+setlocal *, 0
+setlocal *, 1
 
-getlocal 2
-getlocal 3
-getlocal 4
-
-setlocal 2
-setlocal 3
-setlocal 4
-
-getdynamic *, 0
-getdynamic 1, 0
-getdynamic 2, 0
-getdynamic 3, 0
-getdynamic 4, 0
-
-setdynamic *, 0
-setdynamic 1, 0
-setdynamic 2, 0
-setdynamic 3, 0
-setdynamic 4, 0
-
 putobject INT2FIX(0)
 putobject INT2FIX(1)
-putobject Qtrue
-putobject Qfalse
 
-# CALL
-send *, *, Qfalse, 0, *
-send *, 0, Qfalse, 0, *
-send *, 1, Qfalse, 0, *
-send *, 2, Qfalse, 0, *
-send *, 3, Qfalse, 0, *
-
-# FCALL
-send *, *, Qfalse, 0x04, *
-send *, 0, Qfalse, 0x04, *
-send *, 1, Qfalse, 0x04, *
-send *, 2, Qfalse, 0x04, *
-send *, 3, Qfalse, 0x04, *
-
-# VCALL
-send *, 0, Qfalse, 0x0c, *
-
-
 __END__
 
+putobject Qtrue
+putobject Qfalse
 
-
-
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 38172)
+++ ChangeLog	(revision 38173)
@@ -1,3 +1,15 @@
+Tue Dec 04 13:55:07 2012  Koichi Sasada  <ko1@a...>
+
+	* vm_opts.h: enable optimization - operand unifications.
+	  Operand unification technique enable to combine
+	  an instruction and specific operands and make new
+	  instruction.
+
+	* defs/opt_operand.def: add several configuration
+	  of operand unifications.
+
+	* insns.def: use `int' instead to suppress warning.
+
 Mon Dec  3 17:58:53 2012  NARUSE, Yui  <naruse@r...>
 
 	* parse.y: replase parser->enc with current_enc.
Index: insns.def
===================================================================
--- insns.def	(revision 38172)
+++ insns.def	(revision 38173)
@@ -57,10 +57,11 @@
 ()
 (VALUE val)
 {
-    rb_num_t i;
+    int i, lev = (int)level;
     VALUE *ep = GET_EP();
-    for (i = 0; i < level; i++) {
-	ep = GET_PREV_EP(ep);
+
+    for (i = 0; i < lev; i++) {
+	    ep = GET_PREV_EP(ep);
     }
     val = *(ep - idx);
 }
@@ -78,9 +79,10 @@
 (VALUE val)
 ()
 {
-    rb_num_t i;
+    int i, lev = (int)level;
     VALUE *ep = GET_EP();
-    for (i = 0; i < level; i++) {
+
+    for (i = 0; i < lev; i++) {
 	ep = GET_PREV_EP(ep);
     }
     *(ep - idx) = val;
Index: vm_opts.h
===================================================================
--- vm_opts.h	(revision 38172)
+++ vm_opts.h	(revision 38173)
@@ -41,7 +41,7 @@
 #define OPT_BLOCKINLINING            0
 
 /* architecture independent, affects generated code */
-#define OPT_OPERANDS_UNIFICATION     0
+#define OPT_OPERANDS_UNIFICATION     1
 #define OPT_INSTRUCTIONS_UNIFICATION 0
 #define OPT_UNIFY_ALL_COMBINATION    0
 #define OPT_STACK_CACHING            0
@@ -50,7 +50,7 @@
 #define SUPPORT_JOKE                 0
 
 #ifndef VM_COLLECT_USAGE_DETAILS
-#define VM_COLLECT_USAGE_DETAILS 0
+#define VM_COLLECT_USAGE_DETAILS     0
 #endif
 
 #endif /* RUBY_VM_OPTS_H */

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]