Safe Haskell | None |
---|---|
Language | Haskell98 |
- newtype PassManager = PassManager (Ptr PassManager)
- data PassSetSpec
- = PassSetSpec { }
- | CuratedPassSetSpec {
- optLevel :: Maybe Word
- sizeLevel :: Maybe Word
- unitAtATime :: Maybe Bool
- simplifyLibCalls :: Maybe Bool
- loopVectorize :: Maybe Bool
- superwordLevelParallelismVectorize :: Maybe Bool
- useInlinerWithThreshold :: Maybe Word
- dataLayout :: Maybe DataLayout
- targetLibraryInfo :: Maybe TargetLibraryInfo
- targetMachine :: Maybe TargetMachine
- defaultCuratedPassSetSpec :: PassSetSpec
- defaultPassSetSpec :: PassSetSpec
- createPassManager :: PassSetSpec -> IO (Ptr PassManager)
- withPassManager :: PassSetSpec -> (PassManager -> IO a) -> IO a
- runPassManager :: PassManager -> Module -> IO Bool
Documentation
newtype PassManager Source #
http://llvm.org/doxygen/classllvm_1_1PassManager.html Note: a PassManager does substantive behind-the-scenes work, arranging for the results of various analyses to be available as needed by transform passes, shared as possible.
data PassSetSpec Source #
There are different ways to get a PassManager
. This type embodies them.
PassSetSpec | a |
CuratedPassSetSpec | This type is a high-level specification of a set of passes. It uses the same
collection of passes chosen by the LLVM team in the command line tool |
|
defaultCuratedPassSetSpec :: PassSetSpec Source #
Helper to make a curated PassSetSpec
defaultPassSetSpec :: PassSetSpec Source #
an empty PassSetSpec
createPassManager :: PassSetSpec -> IO (Ptr PassManager) Source #
withPassManager :: PassSetSpec -> (PassManager -> IO a) -> IO a Source #
bracket the creation of a PassManager
runPassManager :: PassManager -> Module -> IO Bool Source #
run the passes in a PassManager
on a Module
, modifying the Module
.
Orphan instances
(Monad m, MonadThrow m, MonadAnyCont IO m) => EncodeM m GCOVVersion CString Source # | |