diff mbox

[google] Allow relative profile paths. (issue4280074)

Message ID 20110328171132.781201EEBD7@martint2.mtv.corp.google.com
State New
Headers show

Commit Message

Martin Thuresson March 28, 2011, 5:11 p.m. UTC
This patch should go into google/main so that relative paths can be
used with FDO.

Bootstraped without regression and verified that my benchmarks correctly
used the generated profiles.

Original patch to trunk included a regression test, but I noticed last
week that it failed in certain test scenarios. Will investigate and
push the change upstream once I resolve that.

Thanks,
Martin


2011-03-28  Martin Thuresson  <martint@google.com>

	* gcc/doc/invoke.texi: Document support for relative profile paths.
	* gcc/libgcov.c	(gcov_exit): Support relative profile paths.


--
This patch is available for review at http://codereview.appspot.com/4280074
diff mbox

Patch

Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi	(revision 171049)
+++ gcc/doc/invoke.texi	(working copy)
@@ -7774,7 +7774,7 @@  Set the directory to search for the prof
 This option affects only the profile data generated by
 @option{-fprofile-generate}, @option{-ftest-coverage}, @option{-fprofile-arcs}
 and used by @option{-fprofile-use} and @option{-fbranch-probabilities}
-and its related options.
+and its related options. Both absolute and relative can be used.
 By default, GCC will use the current directory as @var{path}, thus the
 profile data file will appear in the same directory as the object file.
 
Index: gcc/libgcov.c
===================================================================
--- gcc/libgcov.c	(revision 171049)
+++ gcc/libgcov.c	(working copy)
@@ -283,8 +283,9 @@  gcov_exit (void)
 	      }
         }
       /* Update complete filename with stripped original. */
-      if (!IS_DIR_SEPARATOR (*fname) && !HAS_DRIVE_SPEC(fname))
+      if (prefix_length != 0 && !IS_DIR_SEPARATOR (*fname))
 	{
+          /* If prefix is given, add directory separator.  */
 	  strcpy (gi_filename_up, "/");
 	  strcpy (gi_filename_up + 1, fname);
 	}