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_set_filename_env_override that will
set the profile output filename, but allows the 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_setfilename*
into the new setFilenamePossiblyWithPid routine. The handling for a null
LLVM_PROFILE_FILE (which should not reset) is done by caller
setFilenameFromEnvironment.
Is it better to merge this interface with the previous one but with an additional parameter ?