- where
- module_name_str = moduleNameString (Module.moduleName this_mod)
-
-
-initHpc :: Module -> HpcInfo -> Code
-initHpc this_mod tickCount
- = do { id <- newTemp wordRep
- ; emitForeignCall'
- PlayRisky
- [(id,NoHint)]
- (CmmForeignCall
- (CmmLit $ CmmLabel $ mkForeignLabel mod_alloc Nothing False)
- CCallConv
- )
- [ (mkLblExpr mkHpcModuleNameLabel,PtrHint)
- , (CmmLit $ mkIntCLit tickCount,NoHint)
- , (CmmLit $ CmmLabel $ mkHpcTicksLabel $ this_mod,PtrHint)
- ]
- (Just [])
- ; let ext_tick_box = CmmLit $ CmmLabel $ mkHpcModuleOffsetLabel $ this_mod
- ; stmtsC [ CmmStore ext_tick_box (CmmReg id) ]
- }
- where
- mod_alloc = mkFastString "hs_hpc_module"