> On 11-10-12 08:25 , Jan Hubicka wrote: > >> WPA is currently about 1/3 of reading&type merging, 1/3 of streaming out and >> 1/3 of inlining. inlining is relatively easy to cure, so yes, streaming >> performance is important. The very basic streaming primitives actualy still >> shows top in profile along with hashing and type comparing code. I will post >> some updated oprofiles into Mozilla PR. > > OK, thanks. My numbers are from very early LTO development.
Yeah, the problem is minor on small projects and C projects. C++ tends to carry a lot of context with it - both in the files streamed from compilation to WPA (a lot of types and such) as well as into individual ltrans units. We still need to stream in and out about 2GB from WPA to ltrans (combined sizes of ltrans0 to lstrans31) and since we are at 3 minutes of compilation now, seconds actually count. > >> Honestly I think we won't get any great speedups unless we work on reducing >> amount of >> unnecesary info we pickle/unpickle. > > That's what I was leaning towards. Optimizing the basic access patterns > may not buy us as much as just reducing the amount of clutter we have to > deal with. It may make sense, however, as a subsequent optimization. I will give this patch a try on Mozilla to see if I can report some positive numbers. Obviously having the basic I/O effective is also important. Honza > > > Diego.