| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Tokstyle.Analysis.PointsTo.Types
Synopsis
- data MemLoc
- newtype IMemLoc = IMemLoc {}
- data MemLocPool = MemLocPool {
- nextMemLocId :: !Int
- memLocToId :: !(Map MemLoc IMemLoc)
- idToMemLoc :: !(IntMap MemLoc)
- fieldIndex :: !(IntMap IntSet)
- type Context = [ScopedId]
- data FunctionSummary = FunctionSummary {
- fsReturnValue :: !IntSet
- fsParamEffects :: !(Map Int IntSet)
- fsMemEffects :: !(IntMap IntSet)
- newtype GlobalEnv = GlobalEnv (Map (ScopedId, RelevantInputState) (FunctionSummary, PointsToFact))
- data PointsToFact = PointsToFact {}
- newtype RelevantInputState = RelevantInputState PointsToFact
- data PointsToContext l = PointsToContext {
- pcFilePath :: FilePath
- pcTypeSystem :: TypeSystem
- pcVTableMap :: VTableMap
- pcGlobalEnv :: GlobalEnv
- pcFuncs :: Map ScopedId [Node (Lexeme ScopedId)]
- pcCurrentFunc :: ScopedId
- pcVarTypes :: Map ScopedId (Node (Lexeme ScopedId))
- type PointsToAnalysis = State MemLocPool
- intern :: MemLoc -> PointsToAnalysis IMemLoc
Documentation
Constructors
| StackLoc | |
| HeapLoc | |
| GlobalVarLoc | |
| ExternalParamLoc | |
| FieldLoc | |
| NullLoc | |
| UnknownLoc | |
Instances
Interned Memory Location (just an Int for efficiency).
data MemLocPool Source #
A pool for interning MemLocs.
Constructors
| MemLocPool | |
Fields
| |
Instances
| Show MemLocPool Source # | |
Defined in Tokstyle.Analysis.PointsTo.Types Methods showsPrec :: Int -> MemLocPool -> ShowS # show :: MemLocPool -> String # showList :: [MemLocPool] -> ShowS # | |
| DataFlow PointsToAnalysis PointsToContext ScopedId PointsToFact RelevantInputState Source # | |
Defined in Tokstyle.Analysis.PointsTo Methods emptyFacts :: PointsToContext ScopedId -> PointsToAnalysis PointsToFact Source # transfer :: PointsToContext ScopedId -> ScopedId -> Int -> PointsToFact -> Node (Lexeme ScopedId) -> PointsToAnalysis (PointsToFact, Set (ScopedId, RelevantInputState)) Source # join :: PointsToContext ScopedId -> PointsToFact -> PointsToFact -> PointsToAnalysis PointsToFact Source # | |
data FunctionSummary Source #
Constructors
| FunctionSummary | |
Fields
| |
Instances
| Eq FunctionSummary Source # | |
Defined in Tokstyle.Analysis.PointsTo.Types Methods (==) :: FunctionSummary -> FunctionSummary -> Bool # (/=) :: FunctionSummary -> FunctionSummary -> Bool # | |
| Show FunctionSummary Source # | |
Defined in Tokstyle.Analysis.PointsTo.Types Methods showsPrec :: Int -> FunctionSummary -> ShowS # show :: FunctionSummary -> String # showList :: [FunctionSummary] -> ShowS # | |
Constructors
| GlobalEnv (Map (ScopedId, RelevantInputState) (FunctionSummary, PointsToFact)) |
data PointsToFact Source #
Constructors
| PointsToFact | |
Instances
newtype RelevantInputState Source #
Represents the subset of PointsToFact that is relevant for a function call. This is used as the context key for memoization.
Constructors
| RelevantInputState PointsToFact |
Instances
data PointsToContext l Source #
Constructors
| PointsToContext | |
Fields
| |
Instances
| DataFlow PointsToAnalysis PointsToContext ScopedId PointsToFact RelevantInputState Source # | |
Defined in Tokstyle.Analysis.PointsTo Methods emptyFacts :: PointsToContext ScopedId -> PointsToAnalysis PointsToFact Source # transfer :: PointsToContext ScopedId -> ScopedId -> Int -> PointsToFact -> Node (Lexeme ScopedId) -> PointsToAnalysis (PointsToFact, Set (ScopedId, RelevantInputState)) Source # join :: PointsToContext ScopedId -> PointsToFact -> PointsToFact -> PointsToAnalysis PointsToFact Source # | |
type PointsToAnalysis = State MemLocPool Source #