summaryrefslogtreecommitdiffstats
path: root/elaborate.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
* partial revert of 212a56Frank Ch. Eigler2008-10-261-2/+10
|
* Unused global variables display in guru mode fix (rh bz 468139)Rajan Arora2008-10-251-1/+2
|
* PR6851: Added support for %c printf conversion specifier [trying again]Elliott Baron2008-10-201-3/+4
|
* Display source context for error and warning messages (6701)Rajan Arora2008-10-091-0/+43
|
* sort arrays by value- subject to automagic foreach/printfFrank Ch. Eigler2008-09-261-1/+2
|
* PR6916: fix STRUCT1 ($var alternatives error message syntax) regressionFrank Ch. Eigler2008-09-261-13/+30
|
* Fix redundant implicit probe points in listing modeWenji Huang2008-09-121-0/+2
|
* PR6876: translator speedup for many $varsFrank Ch. Eigler2008-09-101-95/+111
|
* Handle scalar statistics.Stan Cox2008-09-051-8/+25
|
* Simplify add_global_var_display token use.Stan Cox2008-09-021-23/+10
|
* Display written but unread global statistics.Stan Cox2008-09-011-4/+31
|
* Repopulate symbol/type info.Stan Cox2008-08-291-35/+10
|
* fix global-var array index renderingFrank Ch. Eigler2008-08-281-148/+154
| | | | (plus emacs' automagic whitespace fixes)
* Automatically print written but unread globalsStan Cox2008-08-271-7/+195
|
* session.h (struct systemtap_session): Added itrace_derived_probedcn2008-07-291-0/+1
| | | | | | | | | | | | | | | | | | | group. elaborate.cxx (systemtap_session::systemtap_session): Added initialization of itrace_derived_probes. tapsets.cxx (struct itrace_derived_probe): Add derived_probe struct for holding info needed by itrace probes. (struct itrace_derived_probe_group): New derived_probe_group to handle itrace probes. (itrace_derived_probe::itrace_derived_probe): Needed for use with task_finder. (itrace_derived_probe_group::join_group): Ditto. (itrace_derived_probe_group::enroll): Ditto. (itrace_derived_probe_group::emit_probe_decl): Ditto. (itrace_derived_probe_group::emit_module_decls): Ditto. (itrace_derived_probe_group::emit_module_init): Ditto. (itrace_derived_probe_group::emit_module_exit): Ditto. stapprobes.5.in : Added documentation of itrace probe.
* make module_cache a session field rather than plain staticFrank Ch. Eigler2008-06-231-0/+1
|
* Get rid of the dynamic_cast<>s in void_statement_reducer.Josh Stone2008-06-191-57/+49
| | | | | | | | Instead, visit_expr_statement can explicitly load a pointer to use for back-references. I also decided to be less-clever about reusing expr_statements. It's a little leakier as a result, but I like having less magic in the air.
* Prove that I know how to spell.Josh Stone2008-06-181-1/+1
|
* Add Intel to copyright header on elaborate.cxxJosh Stone2008-06-181-0/+1
|
* New optimization to break up statements in void contexts.Josh Stone2008-06-181-19/+419
| | | | | | | | | | | | | | | | PR 6644 * elaborate.cxx (dead_stmtexpr_remover::visit_block): Flatten nested block statements into a single block. (dead_stmtexpr_remover::visit_if_statement): Remove the possibility of if_statements with a null thenblock. When an if lacks both then and else, either remove it completely or reduce it to a simple statment evaluating the condition. With an else and no then, invert the condition and else becomes then. (void_statement_reducer): New optimization visitor that breaks statements in void context into smaller pieces, to expose more optimization opportunities. (semantic_pass_opt5, semantic_pass_opt6): Bump opt5 to opt6, and create a new opt5 that runs through void_statement_reducer.
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapFrank Ch. Eigler2008-06-161-1/+0
|\ | | | | | | | | | | * 'master' of ssh://sources.redhat.com/git/systemtap: Improved callback handling. Create alternative list only as needed.
| * Create alternative list only as needed.Stan Cox2008-06-161-28/+29
| |
* | warning/error message compaction by removing duplicated token file namesFrank Ch. Eigler2008-06-161-56/+94
|/
* Bug 6611: read-only variable typo warnings should list alternatives.Stan Cox2008-06-161-6/+40
|
* Make print_warning parm a const.Stan Cox2008-06-121-1/+1
|
* Micro-optimize print_warning output. Fix warnings.exp line count.Mark Wielaard2008-06-111-2/+1
|
* ha ha haFrank Ch. Eigler2008-06-111-1/+1
|
* duplicate warning thinko foxFrank Ch. Eigler2008-06-111-2/+2
|
* Eliminate duplicate warnings.Stan Cox2008-06-111-11/+23
|
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapFrank Ch. Eigler2008-05-211-0/+13
|\ | | | | | | | | | | * 'master' of ssh://sources.redhat.com/git/systemtap: Use pointer_arg to fetch arguments for syscall.utime and compat_utime. Optimize compound and binary expression assignments.
| * Optimize compound and binary expression assignments.Stan Cox2008-05-211-0/+13
| |
* | PR6538: fix treatment of initialized globalsFrank Ch. Eigler2008-05-211-1/+2
| |
* | PR6538: warn about read-only variablesFrank Ch. Eigler2008-05-201-3/+29
|/
* Optimize away assignments in other contexts.Stan Cox2008-05-191-0/+62
|
* suppress "pass-2 failed" messages from "stap -l FOOBAR"; just produce empty ↵Frank Ch. Eigler2008-05-171-6/+3
| | | | output
* PR5643: function caching for much faster syscall.* pass-2 processingFrank Ch. Eigler2008-05-161-1/+4
|
* PR6466: broad side-effect free statement elisionFrank Ch. Eigler2008-04-291-37/+143
|
* 2008-04-15 David Smith <dsmith@redhat.com>David Smith2008-04-161-0/+2
| | | | | | | | | | | | | | | | | | | * session.h (struct systemtap_session): Added utrace_derived_probe group and task_finder_derived_probe_group members. * elaborate.cxx (systemtap_session::systemtap_session): Added initialization of utrace_derived_probes and task_finder_derived_probes. * tapsets.cxx (struct task_finder_derived_probe_group): New derived_probe_group to handle task_finder framework. (struct utrace_derived_probe_group): New derived_probe_group to handle utrace probes. 2008-04-15 David Smith <dsmith@redhat.com> PR 5961 (partial) * task_finder.c (stap_start_task_finder): When an interesting thread is found that is already running, make sure to set up thread death notification.
* PR2949: listings mode (stap -l PROBE)Frank Ch. Eigler2008-04-101-0/+3
| | | | | | | | | | | | | | | | 2008-04-10 Frank Ch. Eigler <fche@elastic.org> PR 2949. * session.h (listing_mode): New field. * main.cxx (main): Test it. Enjoy it. (usage): Document it. * stap.1.in, stapex.5.in: Ditto. * elaborate.cxx (print_error): Disable error messages in listing mode. 2008-04-10 Frank Ch. Eigler <fche@elastic.org> PR 2949 * systemtap.base/cmd_parse.exp: Add "-l" listing test.
* 2008-03-10 Dave Brolley <brolley@redhat.com>brolley2008-03-101-1/+1
| | | | | | | | | | | | | | PR5189 * translate.cxx (probe_or_function_needs_deref_fault_handler): New member of c_unparser. (c_unparser::emit_function): Initialize probe_or_function_needs_deref_fault_handler. Check it after the body is visited and generate a deref fault handler if necessary. (c_unparser::emit_probe): Likewise. (c_unparser::visit_print_format): Correct the compoenent type for an overridden string literal. Generate code to check that pointer arguments to %m can be dereferenced. Generate casts for printf arguments as necessary. * elaborate.cxx (typeresolution_info::visit_print_format): Desired type for conv_memory is pe_long.
* PR5516: assignment to $pointersfche2008-03-031-8/+10
| | | | | | | | | | | | | | | | | | | | | 2008-03-03 Frank Ch. Eigler <fche@elastic.org> PR5516 * elaborate.cxx (symbol_fetcher, dead_assignment_remover): Support unresolved $target lvalues. Propagate pretty error messages. * staptree.cxx (varuse_collecting_visitor target_symbol): Ditto. * staptree.h: Corresponding decl. * loc2c.c: c_translate_pointer_store: New function. * loc2c.h: Corresponding decl. * tapsets.cxx (dwflpp::translate_final_fetch_or_store): Call it for $target pointer assignments. 2008-03-03 Frank Ch. Eigler <fche@elastic.org> PR5516 * buildok/twentynine.stp: New test.
* PR5045: clean up after interruptsfche2008-02-281-0/+17
| | | | | | | | | | | 2008-02-28 Frank Ch. Eigler <fche@elastic.org> PR5045 * session.h (pending_interrupts): New global. * main.cxx (handle_interrupts): New fn to handle SIGINT* etc. * elaborate.cxx, translate.cxx, tapsets.cxx, main.cxx (*): Insert pending_interrupts escape hatches inside potentially timetaking loops. * buildrun.cxx: Don't deal with signals.
* 2008-02-21 Dave Brolley <brolley@redhat.com>brolley2008-02-271-14/+43
| | | | | | | | | | | | | | | | | | | | | | PR5189 * staptree.h (print_format::conv_memory): New enumerator. (print_format::width_type): New enumeration. (print_format::precision_type): New enumeration. (format_component::widthtype): New member. (format_component::prectype): New member. (format_component::is_empty): Test widthtype and prectype. (format_component::clear): Clear widthtype and prectype. * staptree.cxx (print_format::components_to_string): Handle dynamic width and precision. Handle conv_memory. (print_format::string_to_components): Parse dynamic width and precision specifiers. Set widthtype and prectype. Parse %m format specifier. * elaborate.h (typeresolution_info::check_arg_type): New method. * elaborate.cxx (typeresolution_info::visit_print_format): Account for dynamic width and precision when computing the expected number of arguments. Check the types of arguments for dynamic width and precision. Use check_arg_type to check the types of all arguments. Handle print_format::conv_memory. (typeresolution_info::check_arg_type): New method. * NEWS: Describe the enhancements above.
* 2008-02-13 Dave Brolley <brolley@redhat.com>brolley2008-02-131-3/+38
| | | | | | | | | | | | | | | | | PR5609 * staptree.h (probe::collect_derivation_chain): Now takes vector<probe*>. (probe::get_alias): New virtual method. * elaborate.h (derived_probe::collect_derivation_chain): Now takes vector<probe*>. * staptree.cxx (probe::collect_derivation_chain): Now takes vector<probe*>. Don't cast 'this' to (derived_probe*). * elaborate.cxx (derived_probe::collect_derivation_chain): Now takes vector<probe*>. (alias_derived_probe::get_alias): New virtual method. (alias_derived_probe::alias): New member. (alias_expansion_builder::build): Call checkForRecursiveExpansion and emit a diagnostic if recursion is detected. Pass alias to constructor of alias_derived_probe. (alias_expansion_builder::checkForRecursiveExpansion): New method. * coveragedb.cxx: Pass vector<probe*> on all calls to collect_derivation_chain.
* PR4393: fix relocatable-kernel global $variable accessfche2008-02-121-0/+1
| | | | | | | | | | | | | 2008-02-12 Frank Ch. Eigler <fche@elastic.org> PR 4393 * tapsets.cxx (emit_address): Support relocatable kernels. (dwarf_derived_probe ctor): Hack around for missing USHRT_MAX. * elaborate.cxx (semantic_pass): Increment rc if exception caught. 2008-02-12 Frank Ch. Eigler <fche@elastic.org> * systemtap.pass1-4/buildok.exp: No longer kfail buildok/seventeen.
* update copyright years for recent checkinsfche2008-01-281-1/+1
|
* PR 4936: probe pont conditions part 2; reorg in prep for full rewritingfche2008-01-181-110/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-17 Frank Ch. Eigler <fche@elastic.org> PR 4935. Reorganize probe condition implementation. * elaborate.cxx (add_condition): New function. (derived_probe): Remove condition member. (derived_probe ctors): Assert non-null incoming probe/location ptrs. (insert_condition_statement): Remove; turn into ... (semantic_pass_conditions): New pass-2 subpass. (semantic_pass_symbols, visit_symbol, visit_functioncall, find_var): Detect some condition-related error cases. (match_key): Change type to exp_type from tok_type. Update callers. (alias_expansion_builder): Propagate probe conditions. * staptree.cxx (probe): Remove condition field and related functions. * tapsets.cxx (dwarf_derived_probe ctor): Compute replacement wildcard-expanded probe_point preserving more of the original location. (mark_derived_probe ctor): Make similar to others - take location rather than condition parameters. * translate.cxx (emit_common_header): Tweak ordering of tmpcounter traversal and hashkey expression generation. * elaborate.h: Corresponding changes. 2008-01-17 Frank Ch. Eigler <fche@elastic.org> PR 4935. * semko/forty.stp, fortyone.stp, fortytwo.stp: New tests. * semok/twentynine.stp: Weaken test since condition expressions have become more tightly constrained.
* 2007-11-27 David Smith <dsmith@redhat.com>dsmith2007-11-271-2/+21
| | | | | | PR 5377. * elaborate.cxx (match_node::find_and_build): Handle wildcards in probe points correctly.
* * conditional-probe SEGV fixfche2007-11-261-1/+2
| | | | | | | 2007-11-26 Frank Ch. Eigler <fche@elastic.org> * elaborate.cxx (derived_probe ctor): Don't duplicate condition if it doesn't exist.
* 2007-11-20 Masami Hiramatsu <mhiramat@redhat.com>hiramatu2007-11-201-4/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | PR 4935. * parse.cxx (parser::parse_probe_point): Parse "if" condition following probe point. * staptree.h (probe_point): Add "condition" field. (probe): Add "condition" field and "add_condition" method. (deep_copy_visitor): Add "deep_copy" method for the expression. * staptree.cxx (probe_point::probe_point): Initalize it. (probe::add_condition): Implement it. (probe::print): Output "condition" field. (probe::str): Ditto. (deep_copy_visitor::deep_copy): Implement it. * elaborate.h (derived_probe): Add "insert_condition_statement" method. * elaborate.cxx (derived_probe::derived_probe): Initialize "condition" field, and insert a condition check routine on the top of body. (derived_probe::insert_condition_statement): Implement it. (alias_expansion_builder::build): Pass the condition from the alias referer to new alias. * tapsets.cxx (be_derived_probe): Remove unused constructor. (dwarf_derived_probe::dwarf_derived_probe): Insert a condition check routine on the top of body. (mark_derived_probe::mark_derived_probe): Ditto. (mark_builder::build): Pass the base location to mark_derived_probe.