patch applied (ghc): Fix description and type profiling

Ian Lynagh igloo at earth.li
Mon Aug 20 06:19:38 EDT 2007


On Mon, Aug 20, 2007 at 10:05:08AM +0100, Simon Marlow wrote:
> Ian Lynagh wrote:
> >Fri Aug 17 07:45:31 PDT 2007  Ian Lynagh <igloo at earth.li>
> >  * Fix description and type profiling
> >  Consistently make the type and description in the info table an offset
> >  or a pointer, depending on whether tables are next to code or not.
> >
> >    M ./compiler/cmm/CmmInfo.hs -58 +57
> >    M ./compiler/codeGen/CgInfoTbls.hs -5 +3
> 
> This surprises me  :-/
> 
> I pushed this patch a while back:
> 
> Wed Jun 13 11:29:28 BST 2007  Simon Marlow <simonmar at microsoft.com>
>   * FIX #1418 (partially)
>   When the con_desc field of an info table was made into a relative
>   reference, this had the side effect of making the profiling fields
>   (closure_desc and closure_type) also relative, but only when compiling
>   via C, and the heap profiler was still treating them as absolute,
>   leading to crashes when profiling with -hd or -hy.
> 
>   This patch fixes up the story to be consistent: these fields really
>   should be relative (otherwise we couldn't make shared versions of the
>   profiling libraries), so I've made them relative and fixed up the RTS
>   to know about this.

This handled most of them, but for example the info tables made with
INFO_TABLE in StgMiscClosures.cmm still had absolute addresses in.

> Also, your patch has this:
> 
>     +              ty_prof' = if tablesNextToCode
>     +                         then makeRelativeRefTo info_label ty_prof
>     +                         else                              ty_prof
> 
> but makeRelativeRefTo already checks tablesNextToCode, so the above patch 
> seems redundant.

Good point, I'll make the above unconditional.

> In fact, the whole patch looks like it might be a no-op 

Well, unless I dreamed it, -hy/-hd worked afterwards but not before  :-)


Thanks
Ian



More information about the Cvs-ghc mailing list