LclId -> GblId question

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

LclId -> GblId question

Gabor Greif-2
Hi devs,

I have a simple question, but could not find an answer yet. The same
variable (I checked!) appears in two dumps with different names and
different external visibilities.
Which pass transforms this variable to a global id, and why? Shouldn't
a LclId remain local along the entire optimisation chain?

Any hint appreciated!

Cheers and thanks,

     Gabor

Snippets from dumps below

##############################################################

-rw-r--r-- 1 ggreif sw12  3281225 May 29 14:14 TcSMonad.dump-stranal


-- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
lvl_sOra :: TcTyVarDetails
[LclId,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
         WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
lvl_sOra
  = ghc-prim-0.5.3:GHC.Magic.noinline
      @ TcTyVarDetails vanillaSkolemTv

##############################################################

-rw-r--r-- 1 ggreif sw12  1438015 May 29 14:14 TcSMonad.dump-simpl


-- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
TcSMonad.isFilledMetaTyVar_maybe2 :: TcTyVarDetails
[GblId,
 Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
         WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
TcSMonad.isFilledMetaTyVar_maybe2
  = ghc-prim-0.5.3:GHC.Magic.noinline
      @ TcTyVarDetails vanillaSkolemTv

##############################################################
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: LclId -> GblId question

Gabor Greif-2
Never mind, I figured it out. It is the CoreTidy pass of the
compilation pipeline:
https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/HscMain

Cheers,

    Gabor

On 5/29/18, Gabor Greif <[hidden email]> wrote:

> Hi devs,
>
> I have a simple question, but could not find an answer yet. The same
> variable (I checked!) appears in two dumps with different names and
> different external visibilities.
> Which pass transforms this variable to a global id, and why? Shouldn't
> a LclId remain local along the entire optimisation chain?
>
> Any hint appreciated!
>
> Cheers and thanks,
>
>      Gabor
>
> Snippets from dumps below
>
> ##############################################################
>
> -rw-r--r-- 1 ggreif sw12  3281225 May 29 14:14 TcSMonad.dump-stranal
>
>
> -- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
> lvl_sOra :: TcTyVarDetails
> [LclId,
>  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
>          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
> lvl_sOra
>   = ghc-prim-0.5.3:GHC.Magic.noinline
>       @ TcTyVarDetails vanillaSkolemTv
>
> ##############################################################
>
> -rw-r--r-- 1 ggreif sw12  1438015 May 29 14:14 TcSMonad.dump-simpl
>
>
> -- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
> TcSMonad.isFilledMetaTyVar_maybe2 :: TcTyVarDetails
> [GblId,
>  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=False, ConLike=False,
>          WorkFree=False, Expandable=False, Guidance=IF_ARGS [] 20 0}]
> TcSMonad.isFilledMetaTyVar_maybe2
>   = ghc-prim-0.5.3:GHC.Magic.noinline
>       @ TcTyVarDetails vanillaSkolemTv
>
> ##############################################################
>
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs