tame/src
Mike Gerwitz 7dbb653624 Inline intermediate any/all classifications
This is another significant milestone.

The next logical step with classification optimization is to inline all of
those intermediate classifications generated from any and all blocks, since
there are so many of them.  This means having the parent classification
absorb all dependencies; not output dependencies for the classification; not
compile the assignments for those classifications; and to inline them at the
match site.  They’re used only once, since they’re generated for each
individual block.

We need to keep the actual classification generation around (and just inline
them) for now, probably until TAMER, because we depend upon their symbol for
determining their dimensionality, which we need for the optimization work we
just did---we must inline them into the proper group (matrix, vector, or
scalar).

The optimization work done up to this point had inlining in mind---only a
little bit of work was needed to make sure that every classification can
simply be stripped of its assignment and be a valid expression that can be
inlined in place of the original reference.

The result of that was predictably significant for the `ui/package` program
that I've been testing with:

  - 4,514 classifications were inlined;
  - The file size dropped to 7.5MiB (from 8.2MiB previously---remember that
    we started at 16MiB); and
  - GC ticks were cut in half, from 67->31.

Unfortunately, this optimization added nearly 1m of time to the compilation
of that program.  Speaking from the future: the UI build optimizations in
liza-proguic were introduced to offset this difference (and provide a net
gain in performance).
2021-06-23 11:44:36 -04:00
..
current Inline intermediate any/all classifications 2021-06-23 11:44:36 -04:00
js Copyright year simplification and update to Ryan Specialty Group 2019-02-07 13:23:09 -05:00
preproc/expand Copyright year 2020 update 2020-03-06 11:05:18 -05:00
symtable Copyright year 2020 update 2020-03-06 11:05:18 -05:00
graph.xsl Copyright year 2020 update 2020-03-06 11:05:18 -05:00
init.xsl.in Copyright year 2020 update 2020-03-06 11:05:18 -05:00
symtable.xsl Copyright year 2020 update 2020-03-06 11:05:18 -05:00