forked from OSchip/llvm-project
0f6220ddd6
Similar to the reason behind moving __llvm_profile_filename into a separate file[1]. When users try to use Full LTO with BFD linker to generate IR level PGO profile, the __llvm_profile_raw_version variable, which is used for marking instrumentation level, generated by frontend would somehow conflict with the weak symbol provided by profiling runtime. In most of the cases, BFD linkers will pick profiling runtime's weak symbol as the real definition and thus generate the incorrect instrumentation level metadata in the final executables. Moving __llvm_profile_raw_version into a separate file would make linkers not seeing the weak symbol in the archive unless the frontend doesn't generate one. [1] https://reviews.llvm.org/D34797 Differential Revision: https://reviews.llvm.org/D83967 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
GCDAProfiling.c | ||
InstrProfiling.c | ||
InstrProfiling.h | ||
InstrProfilingBiasVar.c | ||
InstrProfilingBuffer.c | ||
InstrProfilingFile.c | ||
InstrProfilingInternal.c | ||
InstrProfilingInternal.h | ||
InstrProfilingMerge.c | ||
InstrProfilingMergeFile.c | ||
InstrProfilingNameVar.c | ||
InstrProfilingPlatformDarwin.c | ||
InstrProfilingPlatformFuchsia.c | ||
InstrProfilingPlatformLinux.c | ||
InstrProfilingPlatformOther.c | ||
InstrProfilingPlatformWindows.c | ||
InstrProfilingPort.h | ||
InstrProfilingRuntime.cpp | ||
InstrProfilingUtil.c | ||
InstrProfilingUtil.h | ||
InstrProfilingValue.c | ||
InstrProfilingVersionVar.c | ||
InstrProfilingWriter.c | ||
WindowsMMap.c | ||
WindowsMMap.h |