Commit Graph

2 Commits

Author SHA1 Message Date
Zoltan Somogyi
47a1a02a92 Add vim modelines to most tools.
tools/add_cont_lines:
tools/appears:
tools/assemble:
tools/avg_frame_size:
tools/build_srcdist:
tools/cleanint:
tools/compare_frame_sizes:
tools/configure_mingw_cross:
tools/cont:
tools/ctor_rep_stats:
tools/cur_param:
tools/dd_speedtest:
tools/divide:
tools/extract_dd_stats:
tools/file_name_translation_stats:
tools/frame_sizes:
tools/gdbrun:
tools/half:
tools/info_stats.awk:
tools/linear:
tools/lmc.in:
tools/mai_stats:
tools/make_arena:
tools/next_param:
tools/not:
tools/optstages:
tools/type_ctor_stats:
    Add vim mode lines. Replace tabs with spaces.
2021-04-27 03:54:27 +10:00
Zoltan Somogyi
fb010303a3 Improve the simplify_info and det_info structures.
compiler/simplify_info.m:
    Improve the simplify_info structure in several ways:

    - Put the readonly fields into a substructure of their own, so they
      don't have to be copied every time a writeable field is actually written.

    - Look up the trace level and the value of the trace_optimized flag
      just once per simplification invocation, not once per conjunction.
      Having separated out the readonly fields makes the cost of this
      negligible.

    - Store the pred_id and proc_id of the procedure being simplified
      together, since most uses of them *need* them together.

    - Use benchmarking data to decide which fields are used most frequently,
      and should therefore be stored at the top level.

    - Use all eight slots in a Boehm allocated block at the top level.

    - For some of the writeable fields, when the field is set, the new value
      is frequently the same as the old value. In such cases, return the
      old structure unchanged, instead of allocating a new structure
      and filling it with identical content.

    Add a comment giving both the benchmarking code and the data derived
    from it, since it may be useful in the future.

tools/info_stats.awk:
    The script that summarizes the raw data output by the benchmarking code
    mentioned above.

compiler/det_util.m:
    Store the pred_id and proc_id of the procedure being analysed together,
    since most uses of them *need* them together.

compiler/simplify_goal_conj.m:
    Conform to the above changes, and optimize some related code.

compiler/det_analysis.m:
compiler/det_report.m:
compiler/pd_util.m:
compiler/simplify_goal_call.m:
compiler/simplify_goal_unify.m:
compiler/simplify_proc.m:
    Conform to the above changes.
2017-03-08 08:14:39 +11:00