This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Deprecating Libstdc++ Profile Mode


As discussed on the libstdc++ list (see below) I'm formally
deprecating the Profile Mode, and will commit this patch to the
wwwdocs.

I don't plan to actually remove the code until SystemTap trace points
have been added to the rest of the library to make the Profile Mode
instrumentation redundant, but I want to announce the deprecation now.


On 18/09/16 22:31 +0200, François Dumont wrote:
No problem about it. I always considered this mode as a good idea but never got/took time to work on it. It already provides some hint on how application should be changed but without any clear report of someone using it I understand that it is preferable to get rid of it.

François


On 17/09/2016 00:17, Jonathan Wakely wrote:
Libstdc++ features a "Profile Mode", see
https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html

We've been carrying thousands of lines of code for years, with no
useful tools for doing anything with the performance instrumentation.

Furthermore, many of the profile mode containers don't even contain
any instrumentation (e.g. array, bitset, deque, forward_list). This
means we have to maintain them, and add new functions as the standard
evolves, for absolutely no benefit. (In fact we haven't been doing
that, so the profile mode containers are missing lots of C++14 and
C++17 features).

I know François has objected to removing the profile mode before, but
all that's happened since then is some refactoring, and no progress on
any tools to analyse the profile data and do anything with it.

I propose removing the Profile Mode containers and adding SystemTap
trace points to the normal containers instead. That will allow users
to measure the same actions as Profile Mode tracks, but without any
ABI impact, or needing to recompile the entire program. If anybody
ever comes up with any useful heuristics to analyse the profile data
they can use data recorded by SystemTap, instead of Profile Mode.

So I want to deprecate Profile Mode for GCC 7, and remove it at a
future date when all the same profiling data (and probably even more)
can be gathered using SystemTap instead.

I don't want to keep this code in the repository even if somebody else
is willing to maintain it. Let's please just remove it.



Index: htdocs/gcc-7/changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-7/changes.html,v
retrieving revision 1.14
diff -u -r1.14 changes.html
--- htdocs/gcc-7/changes.html	19 Sep 2016 18:29:16 -0000	1.14
+++ htdocs/gcc-7/changes.html	26 Sep 2016 10:30:55 -0000
@@ -28,6 +28,10 @@
       <code>has_trivial_default_constructor</code>,
       <code>has_trivial_copy_constructor</code> and
       <code>has_trivial_copy_assign</code> have been removed.</li>
+  <li>The libstdc++
+      <a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html";>Profile
+      Mode</a> has been deprecated and will be removed in a future version.
+  </li>
 </ul>
 
 <!-- .................................................................. -->

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]