<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<br>
<br>
<div class="moz-cite-prefix">On 06/13/2018 09:13 PM, Philip Pfaffe
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAHe691EJRHfyqjuQ4vK+TGKHTkBw2GddDKLw-G=W+BET8sosFw@mail.gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">
<div class="gmail_quote">
<div dir="ltr">On Wed, Jun 13, 2018 at 8:03 PM David A. Greene
via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org"
moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">Fedor
Sergeev <<a href="mailto:fedor.sergeev@azul.com"
target="_blank" moz-do-not-send="true">fedor.sergeev@azul.com</a>>
writes:<br>
<br>
>> Ok. The way I envision this working from a user
standpoint is<br>
>> -opt-bisect-limit <n> would mean "n
applications of code<br>
>> transformation." where "code transformation" could
mean an entire pass<br>
>> run or individual transforms within a pass. Each
pass would decide what<br>
>> it supports.<br>
> I would rather not merge pass-execution and
in-pass-transformation<br>
> numbers into a single number.<br>
> It will only confuse users on what is being controlled.<br>
> Especially as in-pass control is going to be opt-in
only.<br>
<br>
Oh, ok. I'm fine with that too. Do we want this
finer-grained control<br>
on a global basis, or a per-pass basis? For example, should
something<br>
like -transform-max=<n> apply over the whole
compilation run, so that<br>
every pass checks the limit, or should it work like<br>
-transform-max=<pass>=<n>, where only pass
<pass> checks the limit? If<br>
the latter, then -opt-bisect-limit (or bugpoint) can
identify the pass<br>
and another run with -transform-max can identify the
specific transform<br>
within the pass.<br>
</blockquote>
<div>This seems to be pretty much orthogonal to the pass
manager instrumentation. In fact, there is nothing keeping
you from implementing this for your pass right now using
debug counters. That's mostly their job, and they are
independent of the pass manager implementation.</div>
</div>
</div>
</blockquote>
My problem with debug counters is that they are ... well ...
debug-only :)<br>
I was planning to use debug counters for the purpose of pass
execution counting but then<br>
realized that it will not work in Release mode at all.<br>
<br>
But other than that debug counters seems to be a exactly a machinery
designed for opt-in control of internal pass activity.<br>
<br>
regards,<br>
Fedor.<br>
<br>
<blockquote type="cite"
cite="mid:CAHe691EJRHfyqjuQ4vK+TGKHTkBw2GddDKLw-G=W+BET8sosFw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_quote">
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
The latter is how we have things set up here and it seems to
work well,<br>
but I can also see utility in a global limit because then
you don't need<br>
two separate runs to isolate the problem.<br>
<br>
I'd like to start building this off the pass instrumentation
stuff as<br>
soon as it gets integrated. Could you copy me on
Phabricator when they<br>
land there? Thanks!<br>
<br>
>> The harder cases are where the analysis phase
itself does some<br>
>> transformation (possily to facilitate analysis) and
then decides the<br>
> As Philip has already pointed out, analyses by design
are expected to<br>
> be non-mutating.<br>
<br>
See my reply to Philip. I'm talking about various analyses
that happen<br>
within transformation passes.</blockquote>
<div>I see, then I just misunderstood what you meant by
analysis. I believe what you were going here for can as well
be implemented on top of debug counters.</div>
<div><br>
</div>
<div>
<div
style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br
class="gmail-Apple-interchange-newline">
Cheers,</div>
<div
style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Philip</div>
<br class="gmail-Apple-interchange-newline">
<br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex"> <br>
</blockquote>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
-David<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank"
moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
<a
href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
rel="noreferrer" target="_blank" moz-do-not-send="true">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote>
</div>
</div>
</blockquote>
<br>
</body>
</html>