This change is the first of 3 patches to add support for specifying
authorEric Christopher <echristo@gmail.com>
Tue, 28 Apr 2015 22:54:51 +0000 (22:54 +0000)
committerEric Christopher <echristo@gmail.com>
Tue, 28 Apr 2015 22:54:51 +0000 (22:54 +0000)
commitd641b53f931bc6246cdb56aff3c1e00abd049bfe
treeb68f1d7b3542943c13a3380054f438fbcaf9b303
parent0ba41a68417cda5a1c88ee6a91921ca7a3f84b56
This change is the first of 3 patches to add support for specifying
the profile output from the command line via -fprofile-instr-generate=<path>,
where the specified output path/file will be overridden by the
LLVM_PROFILE_FILE environment variable.

Several changes are made to the runtime to support this:

Add a new interface __llvm_profile_override_default_filename that will
set the profile output filename, but allows LLVM_PROFILE_FILE to override.
This is the interface used by the new option.

Refactor the pid-expansion done for LLVM_PROFILE_FILE into a separate
routine that can be shared by the various filename setting routines
(so that the filename from the option can also use the "%p" syntax).

Move the truncation into setFilename, and only truncate if there is a
new filename specified (to maintain support for appending to the same
profile file in the case of multiple shared objects built with profiling).

Move the handling for a NULL filename passed to __llvm_profile_set_filename and
__llvm_profile_override_default_filename into the new setFilenamePossiblyWithPid
routine. This now correctly resets the output file to default.profraw
instead of NULL.
The handling for a null LLVM_PROFILE_FILE (which should not reset) is done
by caller setFilenameFromEnvironment.

Patch by Teresa Johnson.

llvm-svn: 236055
compiler-rt/lib/profile/InstrProfiling.h
compiler-rt/lib/profile/InstrProfilingFile.c