summaryrefslogtreecommitdiff
path: root/vm_exec.h
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-04 12:31:05 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-04 12:31:05 +0000
commit23dc0dbc4ad3354a9df899c0105c57bf42e2d243 (patch)
tree9fdcd41591a161885d19cdd96949d743fdc69102 /vm_exec.h
parentb1ad79774de9789a2dd60c19c907356fa823ebd9 (diff)
downloadruby-23dc0dbc4ad3354a9df899c0105c57bf42e2d243.tar.gz
* vm.c (VM_COLLECT_USAGE_DETAILS): make new VM usage analysis
hooks (old macro name is COLLECT_USAGE_ANALYSIS). This feature is only for VM developers. (I'm not sure I can use `VM developers' (the plural form) in this sentence). If VM_COLLECT_USAGE_DETAILS is not 0, VM enables the following usage collection features: (1) insntruction: collect intruction usages. (2) operand: collect operand usages. (3) register: collect register usages. The results are stored in RubyVM::USAGE_ANALYSIS_INSN for (1, 2), RubyVM::USAGE_ANALYSIS_INSN_BIGRAM for (1) and RubyVM::USAGE_ANALYSIS_REGS for (3). You can stop collecting usages with RubyVM::USAGE_ANALYSIS_INSN_STOP(), RubyVM::USAGE_ANALYSIS_OPERAND_STOP(), RubyVM::USAGE_ANALYSIS_REGISTER_STOP() for (1), (2), (3) respectively. You can also change the hook functions by setting C level global variables `ruby_vm_collect_usage_func_(insn|operand|register)' for (1), (2), (3) respectively. See codes for more details. * tool/instruction.rb: fix macro names. * iseq.c (insn_operand_intern): make it export (used in vm.c). fix to skip several processes if not needed (pointer is 0). * vm_dump.c: move codes for collection features to vm.c. * vm_exec.h: rename macro and function names. * vm_insnhelper.h: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_exec.h')
-rw-r--r--vm_exec.h10
1 files changed, 0 insertions, 10 deletions
diff --git a/vm_exec.h b/vm_exec.h
index 2c1e2d5527..863f7c055c 100644
--- a/vm_exec.h
+++ b/vm_exec.h
@@ -18,16 +18,6 @@ typedef unsigned long dindex_t;
typedef rb_num_t GENTRY;
typedef rb_iseq_t *ISEQ;
-#ifdef COLLECT_USAGE_ANALYSIS
-#define USAGE_ANALYSIS_INSN(insn) vm_analysis_insn(insn)
-#define USAGE_ANALYSIS_OPERAND(insn, n, op) vm_analysis_operand((insn), (n), (VALUE)(op))
-#define USAGE_ANALYSIS_REGISTER(reg, s) vm_analysis_register((reg), (s))
-#else
-#define USAGE_ANALYSIS_INSN(insn) /* none */
-#define USAGE_ANALYSIS_OPERAND(insn, n, op) /* none */
-#define USAGE_ANALYSIS_REGISTER(reg, s) /* none */
-#endif
-
#ifdef __GCC__
/* TODO: machine dependent prefetch instruction */
#define PREFETCH(pc)