Thread overview | |||||
---|---|---|---|---|---|
|
April 25, 2018 Profiling with LDC | ||||
---|---|---|---|---|
| ||||
I'm trying to figure out how to do a traditional instrumented profile with LDC. All docs that I've managed to find so far say to use -fprofile-instr-generate, but when I try that, I get a ton of linker errors complaining of undefined reference to the symbol: __llvm_profile_instrument_target What gives? I'm guessing I need to specify some additional LLVM libraries for this? I'm using the official Debian ldc package, btw. Is there possibly a missing dependency on some llvm libraries? T -- If the comments and the code disagree, it's likely that *both* are wrong. -- Christopher |
April 25, 2018 Re: Profiling with LDC | ||||
---|---|---|---|---|
| ||||
Posted in reply to H. S. Teoh | On Wednesday, 25 April 2018 at 17:31:06 UTC, H. S. Teoh wrote:
> I'm trying to figure out how to do a traditional instrumented profile with LDC. All docs that I've managed to find so far say to use -fprofile-instr-generate, but when I try that, I get a ton of linker errors complaining of undefined reference to the symbol:
>
> __llvm_profile_instrument_target
>
> What gives? I'm guessing I need to specify some additional LLVM libraries for this?
How are you linking? Do you let LDC link and is `-fprofile-instr-generate` passed during linking aswell?
The profiling runtime must be linked in. On Unixes, the file is "libldc_rt.profile-x86_64.a".
- Johan
|
April 26, 2018 Re: Profiling with LDC | ||||
---|---|---|---|---|
| ||||
Posted in reply to H. S. Teoh | On Wednesday, 25 April 2018 at 17:31:06 UTC, H. S. Teoh wrote: > I'm trying to figure out how to do a traditional instrumented profile with LDC. All docs that I've managed to find so far say to use -fprofile-instr-generate, but when I try that, I get a ton of linker errors complaining of undefined reference to the symbol: > > __llvm_profile_instrument_target > > What gives? I'm guessing I need to specify some additional LLVM libraries for this? I’d suggest perf if you are on Linux. It also tracks kernel-land calls if you have permissions. Just compile with debug symbols and run: perf record -g ./app ... perf report Works for both DMD and LDC. It is sampling, so might not be accurate for short lived stuff. > > I'm using the official Debian ldc package, btw. Is there possibly a missing dependency on some llvm libraries? > > > T |
Copyright © 1999-2021 by the D Language Foundation