Emitting calls to functions defined in PrimOps.cmm from the code gen

Johan Tibell johan.tibell at gmail.com
Fri Mar 7 15:23:20 UTC 2014


With Simon's help I figured it out. I'm now refactoring StgCmmPrimOp so
it's easier to have primops that have both inline and out-of-line
implementations in the future.


On Fri, Mar 7, 2014 at 3:19 PM, Carter Schonwald <carter.schonwald at gmail.com
> wrote:

> Have you looked at some of the lowering code for other primops? What info
> are you missing?
>
>
> On Friday, March 7, 2014, Johan Tibell <johan.tibell at gmail.com> wrote:
>
>> Hi,
>>
>> I'm trying to make allocation of arrays of small, statically-known size
>> inline. For large or unknown size I just want to call the existing
>> stg_newArrayzh function. In code:
>>
>> doNewArrayOp :: DynFlags -> CmmFormal -> CmmExpr -> FCode ()
>> doNewArrayOp dflags res_r (CmmLit (CmmInt n _)) | n <= inlineAllocLimit =
>> do
>>     -- Do everything inline.
>> doNewArrayOp dflags res_r n = do
>>     emitCallTo "stg_newArrayzh" res_r n  -- HERE
>>
>> The question is: how do I emit a call to stg_newArrayzh, which is defined
>> in PrimOps.cmm?
>>
>> -- Johan
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140307/e61eabd5/attachment-0001.html>


More information about the ghc-devs mailing list