From 07c17d677a8080492b4a67b664f4cc9557f5dda3 Mon Sep 17 00:00:00 2001 From: graydon Date: Thu, 24 Nov 2005 05:55:52 +0000 Subject: 2005-11-23 Graydon Hoare * elaborate.h (get_symbol_within_expression): Make visible. * elaborate.cxx (get_symbol_within_expression): Make non-static. (stat_decl_collector): New struct. (semantic_pass_stats): New semantic pass. (semantic_pass): Call it. (semantic_pass_symbols): Remove collection of statistic_decls from files. (visit_stat_op): Only fail if inferred type is not pe_long. * parse.cxx (parser::parse): Don't pass per-file statistic_decl into parse_global. (parser::parse_global): Don't parse global statistic_decls, they're obsolete. * parse.hh (parser::parse_global): Adjust signature to match. * session.h (statistic_decl::operator==): New method. * staptree.h (print_format::is_empty): New method. (stapfile::stat_decls): Remove field. * staptree.cxx (string_to_components): Fix bugs in format-string parser. * translate.cxx (var): Make private fields protected. (var::init): Support HIST_NONE stats. (aggvar): New struct. (mapvar::is_parallel): New method. (mapvar::call_prefix): Use it. (mapvar::calculate_aggregate): New method. (mapvar::fetch_existing_aggregate): New method. (mapvar::get): Support pe_stats. (mapvar::init): Use is_parallel(), and support HIST_NONE. (itervar::itervar): Only fault on pe_unknown. (itervar::start): Use mapvar::is_parallel and mapvar::fetch_existing_aggregate. (emit_map_type_instantiations): Include alloc.c before pmap-gen.c. Include pmap-gen.c for pe_stats maps. (c_unparser::gensym_aggregate): New method. (c_unparser::visit_foreach_loop): Handle mapvar::is_parallel case. (arrayindex_downcaster): New struct. (expression_is_arrayindex): New function. (c_tmpcounter::visit_stat_op): New method. (c_unparser::visit_stat_op): Implement. (c_unparser::visit_hist_op): Add commentary, still not implemented. * testsuite/buildok/stat_{insert,extract}.stp: New tests. * testsuite/semok/ten.stp: Correct for changes to global declarations. * testsuite/semko/*.stp: Likewise. --- staptree.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'staptree.h') diff --git a/staptree.h b/staptree.h index b509ad7a..5c98507a 100644 --- a/staptree.h +++ b/staptree.h @@ -288,6 +288,14 @@ struct print_format: public expression unsigned precision; conversion_type type; std::string literal_string; + bool is_empty() const + { + return flags == 0 + && width == 0 + && precision == 0 + && type == conv_unspecified + && literal_string.empty(); + } void clear() { flags = 0; @@ -522,7 +530,6 @@ struct stapfile std::vector functions; std::vector globals; std::vector embeds; - std::map stat_decls; bool privileged; stapfile (): privileged (false) {} void print (std::ostream& o) const; -- cgit