This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: pass manager question

On Tue, Oct 03, 2017 at 09:11:05AM -0600, Jeff Law wrote:
> On 10/03/2017 05:36 AM, Martin Jambor wrote:
> > Hi,
> > 
> > On Mon, Oct 02, 2017 at 01:27:05PM -0600, Sandra Loosemore wrote:
> >> Is there an idiom for target-specific back end code to ask the pass manager
> >> if a particular pass (e.g., "split1") has already run?
> > 
> > (I might be wrong but) I don't think there is.  But it might be a
> > useful thing to have generally, it would allow us for example to merge
> > early SRA and "late" SRA which differ in behavior only because the
> > first one must not touch aggregates that pass_stdarg will operate on.
> I was thinking that it would be useful to be able to make this kind of
> query as well.

We have properties which the passes can set, of course their number is
limited and using those would require changes to the generic code.

> > And I guess the infrastructure to do that could be as simple as adding
> > a flag (or a counter) to class opt_pass that the pass manager would
> > set (or increment) when running the pass.
> And as a cleanup that flag ought to be able to replace some of the
> existing state flags.  I'm thinking about reload_in_progress,
> reload_completed, cse_not_expected and likely others.

As we have hundreds of passes, it would have to be a per-cfun
sbitmap or something similar, with perhaps named bit positions
for the standard generic passes and a way to get bit positions for the
others (or always look up the pass number)?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]