GHC.HsToCore.Coverage

ghc-9.10.0.20240413: The GHC API

Safe Haskell | None
Language | GHC2021

GHC.HsToCore.Coverage

Synopsis

- writeMixEntries :: FilePath -> Module -> SizedSeq Tick -> FilePath -> IO Int
- hpcInitCode :: Platform -> Module -> HpcInfo -> CStub

# Documentation

writeMixEntries :: FilePath -> Module -> SizedSeq Tick -> FilePath -> IO Int Source #

hpcInitCode :: Platform -> Module -> HpcInfo -> CStub Source #

Create HPC initialization C code for a module

Each module compiled with -fhpc declares an initialisation function of the form `hpc_init_module()`, which is emitted into the _stub.c file and annotated with attribute((constructor)) so that it gets executed at startup time.

The function's purpose is to call hs_hpc_module to register this module with the RTS, and it looks something like this:

    static void hpc_init_Main(void) __attribute__((constructor));
    static void hpc_init_Main(void)
    {
      extern StgWord64 _hpc_tickboxes_Main_hpc[];
      hs_hpc_module("Main",8,1150288664,_hpc_tickboxes_Main_hpc);
    }