Commit Graph

3 Commits

Author SHA1 Message Date
Peter Wang
b0ae10248b Use --trans-opt-deps-spec option.
Use the recently added --trans-opt-deps-spec option to break cycles in
the trans-opt dependency graph for the standard library. This enables
more parallelism when making the .trans_opt files; it now takes about
half as long as before.

Ordering modules sensibly, so that .trans_opt files are created in a
logical order, also improves analysis results for many predicates and
functions. The only results which show a regression with this change are
for deprecated forwarding predicates/functions.

In future, we will probably be able to trim more dependencies to further
improve parallelism, without impacting analysis results.

configure.ac:
    Check that the bootstrap compiler supports --trans-opt-deps-spec.

library/mer_std.trans_opt_deps_spec:
    Add the spec file that adjusts dependencies in the trans-opt
    dependency graph.

library/INTER_FLAGS:
    Use the --trans-opt-deps-spec option when building with mmake.

scripts/prepare_install_dir.in:
tools/binary:
tools/bootcheck:
tools/unary:
    Copy mer_std.trans_opt_deps_spec when preparing a copy of the
    library directory.
2023-01-25 16:48:45 +11:00
Julien Fischer
b49ce2a9ad Update tools directory to account for removal of GCC backend.
tools/binary:
tools/unary:
tools/bootcheck.m:
	As above.
2013-01-16 15:31:10 +11:00
Zoltan Somogyi
4a5b3214ec Fix bugs that prevented the compiler from bootstrapping in deep profiling
Estimated hours taken: 20
Branches: main

Fix bugs that prevented the compiler from bootstrapping in deep profiling
grades with --deep-profile-tail-recursion enabled.

compiler/deep_profiler.m:
	Apply the tail recursion optimization only to procedures that are
	not mutually recursive with any other procedure. (The transformation
	cannot keep track of invocation counts in such cases.) Apply this
	restriction even when the possible mutual recursion is not visible
	to dependency_graph.m.

	Refer to the call_site_nums_N type constructors with the correct arity.

compiler/proc_gen.m:
	The procedures generated by the tail recursion transformation
	do not have their own proc_static structures; they use those
	of the original procedure (whose clones they are). Do not
	insist on them having their own proc_static structure.

tools/unary:
	Add this new tool, which was instrumental in tracking down
	the problems above.
2011-07-07 00:47:29 +00:00