Mercurial > octave-nkf
diff src/ov-usr-fcn.h @ 12783:ad9263d965dc
First experimental profiler implementation with flat profile.
* profiler.cc: New file.
* profiler.h: New file.
* Makefile.am: Include new files in build process.
* oct-parse.yy (frob_function): Store location of function parsed.
* ov-fcn.h (octave_function::profiler_name): New method.
* ov-builtin.cc (octave_builtin::do_multi_index_op): Record timings in profiler.
* ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Ditto.
* ov-usr-fcn.cc (octave_user_script::do_multi_index_op): Ditto.
(octave_user_function::do_multi_index_op): Ditto.
(octave_user_function::octave_user_function): Initialize location_line/column.
(octave_user_function::profiler_name): New method.
* ov-usr-fcn.h (octave_user_function): New variables location_line,
location column and new method stash_fcn_location to set them.
* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Store location.
author | Daniel Kraft <d@domob.eu> |
---|---|
date | Thu, 30 Jun 2011 20:04:34 +0200 |
parents | 12df7854fa7c |
children | 2a8dcb5b3a00 |
line wrap: on
line diff
--- a/src/ov-usr-fcn.h Thu Jul 07 19:16:14 2011 -0400 +++ b/src/ov-usr-fcn.h Thu Jun 30 20:04:34 2011 +0200 @@ -189,6 +189,12 @@ void stash_fcn_file_name (const std::string& nm); + void stash_fcn_location (int line, int col) + { + location_line = line; + location_column = col; + } + void stash_parent_fcn_name (const std::string& p) { parent_name = p; } void stash_parent_fcn_scope (symbol_table::scope_id ps) { parent_scope = ps; } @@ -207,6 +213,8 @@ std::string fcn_file_name (void) const { return file_name; } + std::string profiler_name (void) const; + std::string parent_fcn_name (void) const { return parent_name; } symbol_table::scope_id parent_fcn_scope (void) const { return parent_scope; } @@ -344,6 +352,10 @@ // The name of the file we parsed. std::string file_name; + // Location where this function was defined. + int location_line; + int location_column; + // The name of the parent function, if any. std::string parent_name;