ghc-lib-parser-9.8.1.20231009: The GHC API, decoupled from GHC versions
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.Platform

Description

Platform description

Synopsis

Documentation

data Platform #

Platform description

This is used to describe platforms so that we can generate code for them.

Constructors

Platform 

Fields

Instances

Instances details
Read Platform # 
Instance details

Defined in GHC.Platform

Show Platform # 
Instance details

Defined in GHC.Platform

Eq Platform # 
Instance details

Defined in GHC.Platform

Ord Platform # 
Instance details

Defined in GHC.Platform

OutputableP Platform CmmGraph # 
Instance details

Defined in GHC.Cmm

Methods

pdoc :: Platform -> CmmGraph -> SDoc #

OutputableP Platform CmmInfoTable # 
Instance details

Defined in GHC.Cmm

Methods

pdoc :: Platform -> CmmInfoTable -> SDoc #

OutputableP Platform CmmStatic # 
Instance details

Defined in GHC.Cmm

Methods

pdoc :: Platform -> CmmStatic -> SDoc #

OutputableP Platform CmmTopInfo # 
Instance details

Defined in GHC.Cmm

Methods

pdoc :: Platform -> CmmTopInfo -> SDoc #

OutputableP Platform CLabel # 
Instance details

Defined in GHC.Cmm.CLabel

Methods

pdoc :: Platform -> CLabel -> SDoc #

OutputableP Platform InfoProvEnt # 
Instance details

Defined in GHC.Cmm.CLabel

Methods

pdoc :: Platform -> InfoProvEnt -> SDoc #

OutputableP Platform CmmExpr # 
Instance details

Defined in GHC.Cmm.Expr

Methods

pdoc :: Platform -> CmmExpr -> SDoc #

OutputableP Platform CmmLit # 
Instance details

Defined in GHC.Cmm.Expr

Methods

pdoc :: Platform -> CmmLit -> SDoc #

OutputableP Platform ForeignTarget # 
Instance details

Defined in GHC.Cmm.Node

Methods

pdoc :: Platform -> ForeignTarget -> SDoc #

OutputableP Platform (GenCmmStatics a) # 
Instance details

Defined in GHC.Cmm

Methods

pdoc :: Platform -> GenCmmStatics a -> SDoc #

OutputableP Platform (CmmNode e x) # 
Instance details

Defined in GHC.Cmm.Node

Methods

pdoc :: Platform -> CmmNode e x -> SDoc #

(OutputableP Platform d, OutputableP Platform info, OutputableP Platform i) => OutputableP Platform (GenCmmDecl d info i) # 
Instance details

Defined in GHC.Cmm

Methods

pdoc :: Platform -> GenCmmDecl d info i -> SDoc #

OutputableP Platform (Block CmmNode C C) # 
Instance details

Defined in GHC.Cmm.Node

Methods

pdoc :: Platform -> Block CmmNode C C -> SDoc #

OutputableP Platform (Block CmmNode C O) # 
Instance details

Defined in GHC.Cmm.Node

Methods

pdoc :: Platform -> Block CmmNode C O -> SDoc #

OutputableP Platform (Block CmmNode O C) # 
Instance details

Defined in GHC.Cmm.Node

Methods

pdoc :: Platform -> Block CmmNode O C -> SDoc #

OutputableP Platform (Block CmmNode O O) # 
Instance details

Defined in GHC.Cmm.Node

Methods

pdoc :: Platform -> Block CmmNode O O -> SDoc #

OutputableP Platform (Graph CmmNode e x) # 
Instance details

Defined in GHC.Cmm.Node

Methods

pdoc :: Platform -> Graph CmmNode e x -> SDoc #

platformArch :: Platform -> Arch #

Platform architecture

platformOS :: Platform -> OS #

Platform OS

data ArchOS #

Platform architecture and OS.

Constructors

ArchOS 

Fields

Instances

Instances details
Read ArchOS # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

readsPrec :: Int -> ReadS ArchOS #

readList :: ReadS [ArchOS] #

readPrec :: ReadPrec ArchOS

readListPrec :: ReadPrec [ArchOS]

Show ArchOS # 
Instance details

Defined in GHC.Platform.ArchOS

Eq ArchOS # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: ArchOS -> ArchOS -> Bool #

(/=) :: ArchOS -> ArchOS -> Bool #

Ord ArchOS # 
Instance details

Defined in GHC.Platform.ArchOS

data Arch #

Architectures

TODO: It might be nice to extend these constructors with information about what instruction set extensions an architecture might support.

Instances

Instances details
Read Arch # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

readsPrec :: Int -> ReadS Arch #

readList :: ReadS [Arch] #

readPrec :: ReadPrec Arch

readListPrec :: ReadPrec [Arch]

Show Arch # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

showsPrec :: Int -> Arch -> ShowS #

show :: Arch -> String #

showList :: [Arch] -> ShowS #

Eq Arch # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: Arch -> Arch -> Bool #

(/=) :: Arch -> Arch -> Bool #

Ord Arch # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

compare :: Arch -> Arch -> Ordering #

(<) :: Arch -> Arch -> Bool #

(<=) :: Arch -> Arch -> Bool #

(>) :: Arch -> Arch -> Bool #

(>=) :: Arch -> Arch -> Bool #

max :: Arch -> Arch -> Arch #

min :: Arch -> Arch -> Arch #

data OS #

Operating systems.

Using OSUnknown to generate code should produce a sensible default, but no promises.

Instances

Instances details
Read OS # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

readsPrec :: Int -> ReadS OS #

readList :: ReadS [OS] #

readPrec :: ReadPrec OS

readListPrec :: ReadPrec [OS]

Show OS # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

showsPrec :: Int -> OS -> ShowS #

show :: OS -> String #

showList :: [OS] -> ShowS #

Eq OS # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: OS -> OS -> Bool #

(/=) :: OS -> OS -> Bool #

Ord OS # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

compare :: OS -> OS -> Ordering #

(<) :: OS -> OS -> Bool #

(<=) :: OS -> OS -> Bool #

(>) :: OS -> OS -> Bool #

(>=) :: OS -> OS -> Bool #

max :: OS -> OS -> OS #

min :: OS -> OS -> OS #

data ArmISA #

ARM Instruction Set Architecture

Constructors

ARMv5 
ARMv6 
ARMv7 

Instances

Instances details
Read ArmISA # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

readsPrec :: Int -> ReadS ArmISA #

readList :: ReadS [ArmISA] #

readPrec :: ReadPrec ArmISA

readListPrec :: ReadPrec [ArmISA]

Show ArmISA # 
Instance details

Defined in GHC.Platform.ArchOS

Eq ArmISA # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: ArmISA -> ArmISA -> Bool #

(/=) :: ArmISA -> ArmISA -> Bool #

Ord ArmISA # 
Instance details

Defined in GHC.Platform.ArchOS

data ArmISAExt #

ARM extensions

Constructors

VFPv2 
VFPv3 
VFPv3D16 
NEON 
IWMMX2 

Instances

Instances details
Read ArmISAExt # 
Instance details

Defined in GHC.Platform.ArchOS

Show ArmISAExt # 
Instance details

Defined in GHC.Platform.ArchOS

Eq ArmISAExt # 
Instance details

Defined in GHC.Platform.ArchOS

Ord ArmISAExt # 
Instance details

Defined in GHC.Platform.ArchOS

data ArmABI #

ARM ABI

Constructors

SOFT 
SOFTFP 
HARD 

Instances

Instances details
Read ArmABI # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

readsPrec :: Int -> ReadS ArmABI #

readList :: ReadS [ArmABI] #

readPrec :: ReadPrec ArmABI

readListPrec :: ReadPrec [ArmABI]

Show ArmABI # 
Instance details

Defined in GHC.Platform.ArchOS

Eq ArmABI # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: ArmABI -> ArmABI -> Bool #

(/=) :: ArmABI -> ArmABI -> Bool #

Ord ArmABI # 
Instance details

Defined in GHC.Platform.ArchOS

data PPC_64ABI #

PowerPC 64-bit ABI

Constructors

ELF_V1

PowerPC64

ELF_V2

PowerPC64 LE

Instances

Instances details
Read PPC_64ABI # 
Instance details

Defined in GHC.Platform.ArchOS

Show PPC_64ABI # 
Instance details

Defined in GHC.Platform.ArchOS

Eq PPC_64ABI # 
Instance details

Defined in GHC.Platform.ArchOS

Ord PPC_64ABI # 
Instance details

Defined in GHC.Platform.ArchOS

data ByteOrder #

Constructors

BigEndian 
LittleEndian 

Instances

Instances details
Bounded ByteOrder 
Instance details

Defined in GHC.ByteOrder

Enum ByteOrder 
Instance details

Defined in GHC.ByteOrder

Generic ByteOrder 
Instance details

Defined in GHC.ByteOrder

Associated Types

type Rep ByteOrder :: Type -> Type

Methods

from :: ByteOrder -> Rep ByteOrder x

to :: Rep ByteOrder x -> ByteOrder

Read ByteOrder 
Instance details

Defined in GHC.ByteOrder

Show ByteOrder 
Instance details

Defined in GHC.ByteOrder

Eq ByteOrder 
Instance details

Defined in GHC.ByteOrder

Ord ByteOrder 
Instance details

Defined in GHC.ByteOrder

type Rep ByteOrder 
Instance details

Defined in GHC.ByteOrder

type Rep ByteOrder = D1 ('MetaData "ByteOrder" "GHC.ByteOrder" "base" 'False) (C1 ('MetaCons "BigEndian" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LittleEndian" 'PrefixI 'False) (U1 :: Type -> Type))

target32Bit :: Platform -> Bool #

This predicate tells us whether the platform is 32-bit.

osElfTarget :: OS -> Bool #

This predicate tells us whether the OS supports ELF-like shared libraries.

osMachOTarget :: OS -> Bool #

This predicate tells us whether the OS support Mach-O shared libraries.

platformMinInt :: Platform -> Integer #

Minimum representable Int value for the given platform

platformMaxInt :: Platform -> Integer #

Maximum representable Int value for the given platform

platformMaxWord :: Platform -> Integer #

Maximum representable Word value for the given platform

platformInIntRange :: Platform -> Integer -> Bool #

Test if the given Integer is representable with a platform Int

platformInWordRange :: Platform -> Integer -> Bool #

Test if the given Integer is representable with a platform Word

platformCConvNeedsExtension :: Platform -> Bool #

For some architectures the C calling convention is that any integer shorter than 64 bits is replaced by its 64 bits representation using sign or zero extension.

platformHasRTSLinker :: Platform -> Bool #

Does this platform have an RTS linker?

data PlatformMisc #

Platform-specific settings formerly hard-coded in Config.hs.

These should probably be all be triaged whether they can be computed from other settings or belong in another another place (like Platform above).

data SseVersion #

x86 SSE instructions

Constructors

SSE1 
SSE2 
SSE3 
SSE4 
SSE42 

Instances

Instances details
Eq SseVersion # 
Instance details

Defined in GHC.Platform

Ord SseVersion # 
Instance details

Defined in GHC.Platform

data BmiVersion #

x86 BMI (bit manipulation) instructions

Constructors

BMI1 
BMI2 

Instances

Instances details
Eq BmiVersion # 
Instance details

Defined in GHC.Platform

Ord BmiVersion # 
Instance details

Defined in GHC.Platform

SSE and AVX

Platform constants

data PlatformConstants #

Constructors

PlatformConstants 

Fields

lookupPlatformConstants :: [FilePath] -> IO (Maybe PlatformConstants) #

Try to locate "GhclibDerivedConstants.h" file in the given dirs and to parse the PlatformConstants from it.

See Note [Platform constants]

Shared libraries