module Futhark.CodeGen.ImpCode.OpenCL
( Program (..),
KernelTarget (..),
module Futhark.CodeGen.ImpCode.Kernels,
)
where
import Data.Map qualified as M
import Data.Text qualified as T
import Futhark.CodeGen.ImpCode.Kernels
data Program = Program
{ Program -> Text
openClProgram :: T.Text,
Program -> Text
openClPrelude :: T.Text,
Program -> [(Name, KernelConstExp)]
openClMacroDefs :: [(Name, KernelConstExp)],
Program -> Map Name KernelSafety
openClKernelNames :: M.Map KernelName KernelSafety,
Program -> [PrimType]
openClUsedTypes :: [PrimType],
Program -> [FailureMsg]
openClFailures :: [FailureMsg],
Program -> Definitions HostOp
hostDefinitions :: Definitions HostOp
}
data KernelTarget
= TargetOpenCL
| TargetCUDA
| TargetHIP
deriving (KernelTarget -> KernelTarget -> Bool
(KernelTarget -> KernelTarget -> Bool)
-> (KernelTarget -> KernelTarget -> Bool) -> Eq KernelTarget
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: KernelTarget -> KernelTarget -> Bool
== :: KernelTarget -> KernelTarget -> Bool
$c/= :: KernelTarget -> KernelTarget -> Bool
/= :: KernelTarget -> KernelTarget -> Bool
Eq)