llvm-project/compiler-rt/lib/profile
Eric Christopher d641b53f93 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
2015-04-28 22:54:51 +00:00
..
CMakeLists.txt [Profile] Always build profile runtime library with -fPIC. 2014-11-14 00:16:26 +00:00
GCDAProfiling.c Add missing include 2015-04-03 19:10:35 +00:00
InstrProfiling.c profile: Avoid name collisions between instrumentation and runtime 2014-09-04 15:45:31 +00:00
InstrProfiling.h This change is the first of 3 patches to add support for specifying 2015-04-28 22:54:51 +00:00
InstrProfilingBuffer.c profile: Add low level versions of profile buffer functions 2014-12-09 22:07:25 +00:00
InstrProfilingFile.c This change is the first of 3 patches to add support for specifying 2015-04-28 22:54:51 +00:00
InstrProfilingInternal.h profile: Add low level versions of profile buffer functions 2014-12-09 22:07:25 +00:00
InstrProfilingPlatformDarwin.c profile: Avoid name collisions between instrumentation and runtime 2014-09-04 15:45:31 +00:00
InstrProfilingPlatformOther.c profile: Avoid name collisions between instrumentation and runtime 2014-09-04 15:45:31 +00:00
InstrProfilingRuntime.cc InstrProf: Support profiling dlopen'd shared libraries 2014-05-17 01:27:30 +00:00
Makefile.mk PGO: Add explicit static initialization 2014-03-20 19:23:53 +00:00