[llvm-commits] Patch, enable reusing a module pass manager across multiple modules

Pedro Artigas partigas at apple.com
Tue Nov 13 16:05:08 PST 2012


Hello All,

Keeping the state is better because we do not need to reallocate several data structures, if you can just reuse the existing ones compile time will be better as the allocation of the module passes is going to be amortized over a larger number of modules. That is, assuming allocation time is greater than initialization and finalization time, you win for every module but the first.

The idea is that we will compile many modules together and save compile time by reusing the module passes data structures.

Note that (I forgot to mention in the original message) the current implementation is just a skeleton and module passes would have to be changed to the new scheme to materialize any compile time savings, but the change is a step towards that (without it the idea cannot work).

Thanks

Pedro Artigas

On Nov 13, 2012, at 4:00 PM, Eric Christopher <echristo at gmail.com> wrote:

> 
> 
> 
> On Tue, Nov 13, 2012 at 3:51 PM, Pedro Artigas <partigas at apple.com> wrote:
> Hello All,
> 
> The patch below is intended to enable reusing a module pass manager across multiple modules, the core idea is that module passes do not have to be reallocated but are just initialized and finalized before/after each run so that the allocated state can be persistent across multiple modules
> 
> patch attached
> 
> Can you give a rundown on why you'd like to keep the allocated state versus remove the allocated state?
> 
> -eric 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121113/9a7aa246/attachment.html>


More information about the llvm-commits mailing list