futhark-0.23.1: An optimising compiler for a functional, array-oriented language.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Futhark.CodeGen.Backends.MulticoreC

Description

C code generator. This module can convert a correct ImpCode program to an equivalent C program.

Synopsis

Documentation

compileProg :: MonadFreshNames m => Text -> Prog MCMem -> m (Warnings, CParts) Source #

Compile the program to ImpCode with multicore operations.

data CParts Source #

The result of compilation to C is multiple parts, which can be put together in various ways. The obvious way is to concatenate all of them, which yields a CLI program. Another is to compile the library part by itself, and use the header file to call into it.

Constructors

CParts 

Fields

asLibrary :: CParts -> (Text, Text, Text) Source #

Produce header, implementation, and manifest files.

asExecutable :: CParts -> Text Source #

As executable with command-line interface.

asServer :: CParts -> Text Source #

As server executable.

operations :: Operations Multicore s Source #

Operations for generating multicore code.

cliOptions :: [Option] Source #

Multicore-related command line options.

atomicOps :: AtomicOp -> (Type -> VName -> CompilerM op s Type) -> CompilerM op s () Source #