Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

* 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.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
commit d3842de5c9baa2962e01d02b2499eac49d9065a6 1 parent 51ee08f
Koichi Sasada ko1 authored
Showing with 27 additions and 50 deletions.
  1. +12 −0 ChangeLog
  2. +6 −43 defs/opt_operand.def
  3. +7 −5 insns.def
  4. +2 −2 vm_opts.h
12 ChangeLog
View
@@ -1,3 +1,15 @@
+Tue Dec 04 13:55:07 2012 Koichi Sasada <ko1@atdot.net>
+
+ * 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@ruby-lang.org>
* parse.y: replase parser->enc with current_enc.
49 defs/opt_operand.def
View
@@ -7,53 +7,16 @@
# wildcard: *
#
-__END__
-
-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
+getlocal *, 0
+getlocal *, 1
+setlocal *, 0
+setlocal *, 1
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
12 insns.def
View
@@ -57,10 +57,11 @@ getlocal
()
(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 @@ setlocal
(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;
4 vm_opts.h
View
@@ -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 */
Please sign in to comment.
Something went wrong with that request. Please try again.