[m-rev.] for review: --warn-can-fail-functions
Julien Fischer
jfischer at opturion.com
Sat Aug 10 15:04:08 AEST 2024
On Thu, 8 Aug 2024 at 01:51, Zoltan Somogyi <zoltan.somogyi at runbox.com> wrote:
> > (BTW, did you receive my last response regarding the change to where .prof files
> > are placed?)
>
> Yes, but I haven't decided what to do about it. I am thinking about two issues.
>
> One is that the call tree edges of a program will be the same when that program
> is compiled in LLDS and HLDS .prof grades *except* if the program uses a
> C foreign proc that has a "low_level_backend" or "high_level_backend" attribute,
> and has no C foreign_proc with the opposite attribute, since in that case the
> Mercury code version of the procedure can add more edges to its call tree.
> However, these foreign_proc attributes were only ever intended for implementors,
> and their documentation in the language reference manual is commented out,
> so for people other than Mercury developers, they effectively do not exist.
> This makes .prof files effectively non-grade-specific for them.
I can't actually see any use of those attributes in the Mercury system
outside of
a couple of test cases. In any case, as you say, it's not a feature
users should
be using in their code.
> The second is that the name of the extension, .prof is misleading. Yes, these files
> are used for profiling, but they do NOT themselves contain profiling data. I have
> been trying to come up with a suffix name that is accurate, non-misleading *and*
> not too long, but have not succeeded.
Those files contain the static call graph, so perhaps one of the following:
.callgraph
.staticcg
.stcg
.scg
?
Julien.
More information about the reviews
mailing list