profile mode maintenance patch

François Dumont frs.dumont@gmail.com
Mon May 12 20:15:00 GMT 2014


Hi

     Here is a maintenance patch for profile mode. It does:

- Use inheritance to limit duplication of code in constructors to 
register for the different profiling mode diagnostics data structure.
- Remove many code keeping only instrumented methods or methods that 
where the container type itself appears in the signature..
- Extend the map to unordered_map to all ordered containers.

     And of course code cleanup and usage of default implementation for 
special methods as much as possible.

     Regarding Makefile.in I miss last time. I moved to a new system 
lately, a Ubuntu based one, and still need to find out what version of 
automake/autoreconf I need to install. For the moment I have updated 
Makefile.in manually.

2014-05-13  François Dumont <fdumont@gcc.gnu.org>

     * include/profile/array: Clean useless white chars.
     * include/profile/base.h: Likewise.
     * include/profile/iterator_tracker.h: Likewise.
     * include/profile/bitset: Code cleanup and remove not instrumented 
code.
     * include/profile/deque: Likewise.
     * include/profile/forward_list: Likewise.
     * include/profile/list (std::__profile::_List_profile<>): New.
     (std::__profile::list<>): Inherit from latter and adapt.
     * include/profile/impl/profiler_map_to_unordered_map.h: Generalize
     advise to match any ordered to unordered container conversion.
     * include/profile/ordered_base.h (std::__profile::_Ordered_profile<>):
     New.
     * include/profile/map.h (std::__profile::map<>): Inherit from latter,
     remove not instrumented code.
     * include/profile/multimap.h (std::__profile::multimap<>): Likewise.
     * include/profile/set.h (std::__profile::set<>): Likewise.
     * include/profile/multiset.h (std::__profile::multiset<>): Likewise.
     * include/profile/unordered_base.h: Add some line feed.
     * include/profile/unordered_map: Clean useless white chars and replace
     spaces with tabs.
     * include/profile/unordered_set: Likewise.
     * include/profile/vector (std::__profile::_Vector_profile_pre<>): New.
     (std::__profile::_Vector_profile_post<>): New.
     (std::__profile::vector<>): Inherit from latter and adapt.

Tested under Linux x86_64 profile mode;

Ok to commit ?

François



-------------- next part --------------
A non-text attachment was scrubbed...
Name: profile.patch
Type: text/x-patch
Size: 169220 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20140512/a2fa6115/attachment.bin>


More information about the Libstdc++ mailing list