diff options
| author | Rainer Orth <ro@gcc.gnu.org> | 2019-06-20 21:27:06 +0000 |
|---|---|---|
| committer | Rainer Orth <ro@gcc.gnu.org> | 2019-06-20 21:27:06 +0000 |
| commit | 6fde832b82daa0ddc19b88b281528b13dbf3958d (patch) | |
| tree | 247ea21bdd78187508dabcdd95f69a8e6d3937ed /llvm/test/Instrumentation/InstrProfiling | |
| parent | 740322f1eb9d9e8777f7bf2945038bd8d6b7bdf4 (diff) | |
| download | bcm5719-llvm-6fde832b82daa0ddc19b88b281528b13dbf3958d.tar.gz bcm5719-llvm-6fde832b82daa0ddc19b88b281528b13dbf3958d.zip | |
[profile] Solaris ld supports __start___llvm_prof_data etc. labels
Currently, many profiling tests on Solaris FAIL like
Command Output (stderr):
--
Undefined first referenced
symbol in file
__llvm_profile_register_names_function /tmp/lit_tmp_Nqu4eh/infinite_loop-9dc638.o
__llvm_profile_register_function /tmp/lit_tmp_Nqu4eh/infinite_loop-9dc638.o
Solaris 11.4 ld supports the non-standard GNU ld extension of adding
__start_SECNAME and __stop_SECNAME labels to sections whose names are valid
as C identifiers. Given that we already use Solaris 11.4-only features
like ld -z gnu-version-script-compat and fully working .preinit_array
support in compiler-rt, we don't need to worry about older versions of
Solaris ld.
The patch documents that support (although the comment in
lib/Transforms/Instrumentation/InstrProfiling.cpp
(needsRuntimeRegistrationOfSectionRange) is quite cryptic what it's
actually about), and adapts the affected testcase not to expect the
alternativeq __llvm_profile_register_functions and __llvm_profile_init.
It fixes all affected tests.
Tested on amd64-pc-solaris2.11.
Differential Revision: https://reviews.llvm.org/D41111
llvm-svn: 363984
Diffstat (limited to 'llvm/test/Instrumentation/InstrProfiling')
| -rw-r--r-- | llvm/test/Instrumentation/InstrProfiling/platform.ll | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/llvm/test/Instrumentation/InstrProfiling/platform.ll b/llvm/test/Instrumentation/InstrProfiling/platform.ll index 4c54aea9aec..8c546075963 100644 --- a/llvm/test/Instrumentation/InstrProfiling/platform.ll +++ b/llvm/test/Instrumentation/InstrProfiling/platform.ll @@ -42,19 +42,16 @@ declare void @llvm.instrprof.increment(i8*, i64, i32, i32) ; MACHO-NOT: define internal void @__llvm_profile_register_functions ; LINUX-NOT: define internal void @__llvm_profile_register_functions ; FREEBSD-NOT: define internal void @__llvm_profile_register_functions +; SOLARIS-NOT: define internal void @__llvm_profile_register_functions ; PS4-NOT: define internal void @__llvm_profile_register_functions ; WINDOWS-NOT: define internal void @__llvm_profile_register_functions ;; PR38340: When dynamic registration is used, we had a bug where we'd register ;; something that's not a __profd_* variable. -; SOLARIS: define internal void @__llvm_profile_register_functions -; SOLARIS-NOT: __llvm_profile_runtime_user -; SOLARIS: ret void - ; MACHO-NOT: define internal void @__llvm_profile_init ; LINUX-NOT: define internal void @__llvm_profile_init ; FREEBSD-NOT: define internal void @__llvm_profile_init +; SOLARIS-NOT: define internal void @__llvm_profile_init ; PS4-NOT: define internal void @__llvm_profile_init ; WINDOWS-NOT: define internal void @__llvm_profile_init -; SOLARIS: define internal void @__llvm_profile_init |

