gmainlan at microsoft.com
Fri Feb 15 20:55:33 CET 2013
Try invoking ghc with -optl-g?
From: ghc-devs-bounces at haskell.org [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Nicolas Frisby
Sent: Friday, February 15, 2013 7:41 PM
To: Johan Tibell
Cc: ghc-devs at haskell.org
Subject: Re: low-level profiling
Ah, looks like the symbol information exists in the .o files, but not in my actual executable. Could I invoke ld manually with some incantation to preserve the function symbols?
On Fri, Feb 15, 2013 at 7:18 PM, Nicolas Frisby <nicolas.frisby at gmail.com<mailto:nicolas.frisby at gmail.com>> wrote:
No, nothing fancy. It's just a nofib program.
I am seeing the .size directives in the .s files. And objdump -S gives output like this:
368: 48 83 e3 07 and $0x7,%rbx
36c: 48 83 fb 02 cmp $0x2,%rbx
370: 0f 83 96 00 00 00 jae 40c <c2hA_info+0x5c>
376: 48 8b 45 08 mov 0x8(%rbp),%rax
so it's just perf that's going awry?
... investigating perf ...
This might be my issue:
Now I just have to decode all of that!
On Fri, Feb 15, 2013 at 6:48 PM, Johan Tibell <johan.tibell at gmail.com<mailto:johan.tibell at gmail.com>> wrote:
On Fri, Feb 15, 2013 at 10:24 AM, Nicolas Frisby <nicolas.frisby at gmail.com<mailto:nicolas.frisby at gmail.com>> wrote:
I'm not passing any flags related to code generation, I don't think.
$HC -H64m -O -Rghc-timing -package array -H32m -hisuf hi -O1 -rtsopts -c Main.hs -o Main.o
So that'd just be the native code generator, right?.
$ uname -a
Linux cam-05-unx 3.2.0-35-generic #55-Ubuntu SMP Wed Dec 5 17:42:16 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Is there a objdump-ish way to directly look for these .size directives?
If you tell GHC to keep all temporary file you could look in the .S files for the .size directive. It could be that I missed some place where we ought to put a .size directive. Are you doing dynamic linking?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ghc-devs