C# (CSharp) Mosa.Compiler.Framework.Stages Namespace

Classes

Name Description
BaseEdgeSplitStage This stage removes critical edges by inserting empty basic blocks. Some SSA optimizations and the flow control resolution in the register allocator require that all critical edges are removed.
BlockOrderingStage The Block Ordering Stage reorders blocks to optimize loops and reduce the distance of jumps and branches.
CILProtectedRegionStage This stage inserts IR instructions related to protected regions.
CILTransformationStage Transforms CIL instructions into their appropriate IR.
CodeGenerationStage Base class for code generation stages.
EmptyBlockRemovalStage This stage removes empty blocks.
ExceptionPrologueStage This stage inserts the ExceptionPrologue IR instruction at the beginning of each exception block.
ExceptionStage
GreedyRegisterAllocatorStage
IRCleanupStage
IROptimizationStage
InlineEvaluationStage
InlineStage
JumpOptimizationStage This stages removes jumps to the next instruction
LeaveSSA
LinkerFinalizationStage Finalizes the linking
MapFileGenerationStage An compilation stage, which generates a map file of the built binary file.
MetadataStage Emits metadata for assemblies and types
MethodExceptionLookupTableStage Emits method lookup table
MethodLookupTableStage Emits method lookup table
OperandAssignmentStage
OperandAssignmentStage.WorkItem
PlugStage Searches for plug declarations
PreciseGCStage This stage determine were object references are located in code.
PreciseGCStage.RangeData
ProtectedRegionLayoutStage
SparseConditionalConstantPropagationStage
StackLayoutStage Calculates the layout of the stack of the method.
StackSetupStage
StackSlotStage Calculates the layout of the stack of the method.
StaticAllocationResolutionStage
TypeInitializerSchedulerStage Schedules type initializers and creates a hidden mosacl_main method, which runs all type initializers in sequence.
UnboxValueTypeStage Unboxes value types when we are virtually calling a method on a boxed value type.
VirtualRegisterRenameStage