ghc-7.10.2: The GHC API

Safe HaskellNone
LanguageHaskell2010

CmmMachOp

Synopsis

Documentation

isCommutableMachOp :: MachOp -> Bool Source

Returns True if the MachOp has commutable arguments. This is used in the platform-independent Cmm optimisations.

If in doubt, return False. This generates worse code on the native routes, but is otherwise harmless.

isAssociativeMachOp :: MachOp -> Bool Source

Returns True if the MachOp is associative (i.e. (x+y)+z == x+(y+z)) This is used in the platform-independent Cmm optimisations.

If in doubt, return False. This generates worse code on the native routes, but is otherwise harmless.

isComparisonMachOp :: MachOp -> Bool Source

Returns True if the MachOp is a comparison.

If in doubt, return False. This generates worse code on the native routes, but is otherwise harmless.

maybeIntComparison :: MachOp -> Maybe Width Source

Returns Just w if the operation is an integer comparison with width w, or Nothing otherwise.

machOpResultType :: DynFlags -> MachOp -> [CmmType] -> CmmType Source

Returns the MachRep of the result of a MachOp.

machOpArgReps :: DynFlags -> MachOp -> [Width] Source

This function is used for debugging only: we can check whether an application of a MachOp is "type-correct" by checking that the MachReps of its arguments are the same as the MachOp expects. This is used when linting a CmmExpr.

data AtomicMachOp Source

The operation to perform atomically.