libFirm
Modules
Here is a list of all modules:
[detail level 123]
oCode GenerationCode Generation (backend) produces machine-code
oSource ReferencesFirm requires a debugging module fulfilling this interface, else no debugging information is passed to the backend
oAnalyses
|oCallgraphThis file contains the representation of the callgraph
|oControl Dependence
|oBasic Block Execution FrequencyExecution frequencies specify how often a basic block is expected to get executed during execution of a function
|oNode HeightsThe height is a measure for the longest datadependencies path from a node to the end of a basic block
|oDominance InformationThe dominator information is stored in three fields of block nodes:
|oDynamic Reverse Edges
|oLoops
|oMemory DisambiguatorA memory disambiguator checks whether 2 given SSA values representing addresses alias
|oReverse EdgesOut-Edges are the reverse of the edges in a firm graph (also called def-use edges)
|\Value InformationInformation about SSA-values (ranges, known bits, ...)
oAbstract Data StructuresThis module contains abstract datatypes like lists and hashmaps
|oArrays
|oLinked ListsDoubly linked lists
|oDouble Ended QueueImplementation if a double ended queue datastructure for generic pointers
|oPointer MapPointer->Pointer hashmap
|oPriority QueueA priority queue
|oPointer Set(Hash)sets containing pointers
|oGeneric HashsetGeneric Hashset
|oUnion-FindUnion-Find datastructure
|\Memory Allocation
oAlgorithmsThis module contains generic algorithms like bipartite matching or solvers for linear equation systems
|oBipartite MatchingSolved bipartite matching problem
|oGauss Jordan EliminationSolves a system of linear equations
|oHash Functions
|\Hungarian AlgorithmSolves bipartite matching problems (minimize/maximize cost function)
oIdentifiers
oVisualisationDumps information so it can be visualised
|\Convenience Interface
oProcedure GraphThis struct contains all information about a procedure
|oConstruction Support
|oTraversingTraverse graphs:
|\NodesIr_node - a datatype representing a Firm node
oInput and Output
oValue ModesThis module specifies the modes that type the firm nodes
oTransformations and Optimisations
|oFlagsFlags to customize the behavior of libfirm
|oGraph Transformations
|\Local Optimizations
oProgramIr_prog keeps information about a program:
oCorrectness Tests
|\FlagsEnable/Disable automatic correctness tests
oLoweringLowering is the process of transforming a highlevel representation (a representation closer to the sourcecode) into a lower-level representation (something closer to the target machine)
oStatistic EventsThe statistics system helps to evaluate the effects of compiler passes and transformations
oTarget Machine ValuesTarvals only represent values of mode_sort:
oEntitiesAn entity is the representation of program known objects in Firm
|\Entity Initializers
\Type SystemDatastructure to hold type information
 oReverse Type EdgesTrouts list all uses of types and entities
 oType OpcodesThis module specifies the kinds of types available in firm
 oClassIf the type opcode is set to type_class the type represents class types
 oStructA struct type represents aggregate types that consist of a list of fields
 oUnionThe union type represents union types
 oMethodA method type represents a method, function or procedure type
 oArrayThe array type represents rectangular multi dimensional arrays
 oEnumerationEnumeration types need not necessarily be represented explicitly by Firm types, as the frontend can lower them to integer constants as well
 oPointerPointer types:
 oPrimitivePrimitive types are types that represent atomic data values that map directly to modes
 oNoneThis type is an auxiliary type dedicated to support type analyses
 oCode
 oUnknownThis type is an auxiliary type dedicated to support type analyses
 oCompound
 oFrame
 \Traversing