Got it. Thank you. On Fri, Aug 8, 2014 at 11:07 PM, Jeff Law <l...@redhat.com> wrote: > On 08/08/14 06:18, Evgeniya Maenkova wrote: >> >> As far as I know, there are so many configurations (frontends x >> backends x applications(benchmarks) x etc), that the same optimization >> could improve performance in one configuration and degrade at other >> conditions. > > Correct. > > >> What performance tests do you perform before including an optimization >> in GCC? How do you aggregate the results (taking into account >> different behavior on different frontend/backend/benchmarks)? >> Excuse me, if some information is available in GCC documentation, >> didn’t found so far. > > Each developer makes their own determination as to what performance tests > are appropriate to run and on what platforms to run those tests. Some rely > largely on SPEC, others utilize large desktop applications such as firefox > and others are more focused on EEMBC, etc. It really depends on each > developer's focus. > > In general optimizations on GIMPLE/SSA are in large designed to eliminate as > much redundancy as possible independent of the target processor. There are > exceptions, but as a guiding principle that is correct. > > When GIMPLE is lowered to RTL, the expanders query the backend for a > information to guide lowering to RTL in a target dependent way. Similarly > the RTL optimizers are designed to query the backend for information to > guide low level aspects of code generation and optimization. > > When optimizations are submitted for inclusion, there's a review process > where the code reviewers may ask questions or ask for further benchmarks, > etc. The reviewers also use their experience to guide submissions in the > right direction. > > So there's no single simple answer. It varies based on many factors. > > jeff
-- Thanks, Evgeniya perfstories.wordpress.com