This is the mail archive of the gcc-patches@gcc.gnu.org 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: [PATCH 00/11] Rewrite of pass management


On Mon, 2013-07-29 at 11:19 +0100, Richard Earnshaw wrote:
> On 26/07/13 16:04, David Malcolm wrote:
> > The following patch series eliminates the mutable global variables
> > representing GCC's passes, allowing for multiple compilation contexts in
> > one process, potentially with different combinations of passes
> > (e.g. JIT-compilation of JavaScript in one thread, JIT-compilation
> > of OpenGL shader programs in another) and with pass instances owning
> > additional data, including GC references.
> >
> > The opt_pass hierarchy becomes a true C++ class hierarchy.
> >
> > Patch 1 introduces a gcc::pipeline class and moves various non-GTY
> > globals relating to pass management into it.  The gcc::context gains its
> > first field: a pointer to the gcc::pipeline instance.
> >
> 
> Why 'pipeline'?  Given that we already use the term for hardware 
> scheduling, it seems particularly confusing to use that term here for 
> something that seems to be completely unrelated.

How about "gcc::pass_manager"?  (retaining "passes" as the typical name
for instances, for brevity), so we'd have this method within
gcc::context:

  pass_manager& get_passes () { gcc_assert (passes_); return *passes_; }

and pipeline.h would become pass_manager.h

(and probably with a "using gcc::pass_manager;" to avoid spelling out
the namespace everywhere).


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