On 08/01/2013 07:55 AM, David Malcolm wrote: > On Fri, 2013-07-26 at 11:04 -0400, David Malcolm wrote: >> > gcc/ >> > >> > Rewrite how instances of passes are cloned to remove assumptions >> > about their sizes (thus allowing pass subclasses to have >> > additional data fields, albeit non-GC-managed ones at this point). >> > >> > * passes.c (make_pass_instance): Now that passes have clone >> > methods, rewrite this function to eliminate XNEW and memcpy >> > calls that used hardcoded sizes. Since this function no longer >> > creates pass instances, rename it to... >> > (add_pass_instance): ...this. Document the old way that passes >> > were numbered and flagged, and rework this function to continue >> > using it. >> > (next_pass_1): Add an initial_pass argument for use by >> > add_pass_instance. >> > (position_pass): When adding multiple instances of a pass, use >> > the pass's clone method, rather than relying on the XNEW/memcpy >> > within the former make_pass_instance (now add_pass_instance). >> > (pipeline::pipeline): When invoking next_pass_1, also supply the >> > initial instance of the current pass within the pipeline.
Ok (with the pass_manager change). r~