What happens when you put NOINLINE on the function and compile with -fexpose-all-unfoldings? Does that get the behavior you want?


On Thu, Jul 18, 2013 at 2:20 AM, Simon Peyton-Jones <simonpj@microsoft.com> wrote:

It seems a little weird, but the internal data types can express it, so if you can make the front end do the right thing I’d be happy to take it.  (Don’t forget the manual.)

 

SImon

 

From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of Nicolas Frisby
Sent: 16 July 2013 21:29
To: ghc-devs@haskell.org
Subject: Re: defunctionalization

 

Ah, I misread that TidyPgm function.It looks like if I build the CoreUnfolding, GHC will respect it. It's just rejecting the pragma combination in HsSyn.

On Jul 16, 2013 3:22 PM, "Nicolas Frisby" <nicolas.frisby@gmail.com> wrote:
>
> I'd like to put a NOINLINE and an INLINABLE pragma on a binding.
>
> (I'm sketching a defunctionalization pass. I'd like the 'apply` routine RHS to make it into the interface file, but I do not want it to be inlined, since that'd undo the defunctionalization.)
>
> In other words, I'd like a CoreUnfolding value with the uf_guidance = UnfNever.
>
> It seems TidyPgm.addExternal ignores such a core unfolding.
>
> Would GHC consider a patch to make this work?
>
> Thanks.


_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs