mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-19 15:54:18 +00:00
Estimated hours taken: 5 Branches: main Further work on trail usage analysis and optimization. compiler/mercury_compile.m: Move trail usage analysis from stage 123 to stage 167. The advantage of having it later is that compiler introduced predicates are also added to the trailing_info table. compiler/trailing_analysis.m: Do not run this analysis unless we are compiling in a trailing grade. Add a table of (non-builtin) procedures from the standard library whose trailing status can be assumed to be known. This works around some limitations in our current intermodule analysis framework and also improves trail usage optimization when we are compiling without any intermodule optimization. Fix some typos. doc/user_guide.texi.m: compiler/options.m: Document `--analyse-trail-usage' and `--optimize-trail-usage'. doc/reference_manual.texi: Document the `will_not_modify_trail' and `may_modify_trail' foreign code attributes. compiler/notes/compiler_design.html: Mention the trailing_analysis module.