StgRhsClosure freevar and argument name duplicates
Csaba Hruska
csaba.hruska at gmail.com
Sun Nov 4 11:21:37 UTC 2018
Is it possible that GHC generates STG with invalid binding semantics for
certain cases that the Cmm codegen fix or ignore?
This could explain my observations.
I've checked the Stg linter source (StgLint.hs ; GHC 8.2.2 and github
master) and it does not check StgRhsClosure free var and binder list at all.
And the scope checker function (addInScopeVars) does not check for
duplicates.
Any thoughts?
Cheers,
Csaba
On Sat, Nov 3, 2018 at 9:53 AM Csaba Hruska <csaba.hruska at gmail.com> wrote:
> Hi,
>
> Can StgRhsClosure's freevar list ([occ]) or argument list ([bndr]) contain
> duplicates?
>
> Cheers,
> Csaba
>
> data GenStgRhs bndr occ
> = StgRhsClosure
> CostCentreStack -- CCS to be attached (default is
> CurrentCCS)
> StgBinderInfo -- Info about how this binder is used (see
> below)
> *[occ]* -- non-global free vars; a list, rather
> than
> -- a set, because order is important
> !UpdateFlag -- ReEntrant | Updatable | SingleEntry
> *[bndr]* -- arguments; if empty, then not a
> function;
> -- as above, order is important.
> (GenStgExpr bndr occ) -- body
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20181104/e0371a64/attachment.html>
More information about the ghc-devs
mailing list