C# Class Mosa.Compiler.Framework.Stages.IROptimizationStage

Inheritance: BaseMethodCompilerStage
Show file Open project: tgiphil/MOSA-Project

Private Properties

Property Type Description
AddOperandUsageToWorkList void
AddOperandUsageToWorkList void
AddToWorkList void
ArithmeticSimplificationAdditionAndSubstraction void
ArithmeticSimplificationDivision void
ArithmeticSimplificationLogicalOperators void
ArithmeticSimplificationMultiplication void
ArithmeticSimplificationRemSignedModulus void
ArithmeticSimplificationRemUnsignedModulus void
ArithmeticSimplificationShiftOperators void
ArithmeticSimplificationSubtraction void
CanCopyPropagation bool
CanReduceTo32Bit bool
CheckAndClearEmptyBlock void
CombineIntegerCompareBranch void
ConstantFoldingAdditionAndSubstraction void
ConstantFoldingDivision void
ConstantFoldingIntegerCompare void
ConstantFoldingIntegerOperations void
ConstantFoldingLogicalAnd void
ConstantFoldingLogicalOr void
ConstantFoldingMultiplication void
ConstantFoldingPhi void
ConstantMoveToRight void
ContainsAddressOf bool
CreateTransformationList List
DeadCodeElimination void
DeadCodeEliminationPhi void
Do void
FoldIntegerCompare void
FoldIntegerCompareBranch void
FoldLoadStoreOffsets void
GetPowerOfTwo int
IsPowerOfTwo bool
NormalizeConstantTo32Bit void
Optimize void
ProcessWorkList void
Reduce64BitOperationsTo32Bit bool
ReduceTruncationAndExpansion void
ReduceZeroExtendedMove void
RemoveUselessIntegerCompareBranch void
ReplaceVirtualRegister void
SimpleConstantPropagation void
SimpleForwardCopyPropagation void
SimplifyExtendedMove void
SimplifyExtendedMoveWithConstant void
SimplifyPhi void
Unsign ulong

Protected Methods

Method Description
Finish ( ) : void

Finishes this instance.

Run ( ) : void

Private Methods

Method Description
AddOperandUsageToWorkList ( InstructionNode node ) : void

Adds the all the operands usage and definitions to work list.

AddOperandUsageToWorkList ( Operand operand ) : void

Adds the operand usage and definitions to work list.

AddToWorkList ( InstructionNode node ) : void
ArithmeticSimplificationAdditionAndSubstraction ( InstructionNode node ) : void

Strength reduction for integer addition when one of the constants is zero

ArithmeticSimplificationDivision ( InstructionNode node ) : void

Strength reduction for division when one of the constants is zero or one

ArithmeticSimplificationLogicalOperators ( InstructionNode node ) : void

Strength reduction for logical operators

ArithmeticSimplificationMultiplication ( InstructionNode node ) : void

Strength reduction for multiplication when one of the constants is zero or one

ArithmeticSimplificationRemSignedModulus ( InstructionNode node ) : void

Arithmetics the simplification rem signed modulus.

ArithmeticSimplificationRemUnsignedModulus ( InstructionNode node ) : void

Arithmetics the simplification rem unsigned modulus.

ArithmeticSimplificationShiftOperators ( InstructionNode node ) : void

Strength reduction shift operators.

ArithmeticSimplificationSubtraction ( InstructionNode node ) : void

Simplifies subtraction where both operands are the same

CanCopyPropagation ( Operand source, Operand destination ) : bool
CanReduceTo32Bit ( Operand local ) : bool
CheckAndClearEmptyBlock ( BasicBlock block ) : void
CombineIntegerCompareBranch ( InstructionNode node ) : void
ConstantFoldingAdditionAndSubstraction ( InstructionNode node ) : void
ConstantFoldingDivision ( InstructionNode node ) : void
ConstantFoldingIntegerCompare ( InstructionNode node ) : void

Folds the integer compare on constants

ConstantFoldingIntegerOperations ( InstructionNode node ) : void

Folds an integer operation on constants

ConstantFoldingLogicalAnd ( InstructionNode node ) : void
ConstantFoldingLogicalOr ( InstructionNode node ) : void
ConstantFoldingMultiplication ( InstructionNode node ) : void
ConstantFoldingPhi ( InstructionNode node ) : void

Folds the constant phi instruction.

ConstantMoveToRight ( InstructionNode node ) : void
ContainsAddressOf ( Operand local ) : bool
CreateTransformationList ( ) : List
DeadCodeElimination ( InstructionNode node ) : void

Removes the useless move and dead code

DeadCodeEliminationPhi ( InstructionNode node ) : void
Do ( InstructionNode node ) : void
FoldIntegerCompare ( InstructionNode node ) : void
FoldIntegerCompareBranch ( InstructionNode node ) : void

Folds integer compare branch.

FoldLoadStoreOffsets ( InstructionNode node ) : void
GetPowerOfTwo ( ulong n ) : int
IsPowerOfTwo ( ulong n ) : bool
NormalizeConstantTo32Bit ( InstructionNode node ) : void
Optimize ( ) : void
ProcessWorkList ( ) : void
Reduce64BitOperationsTo32Bit ( ) : bool
ReduceTruncationAndExpansion ( InstructionNode node ) : void
ReduceZeroExtendedMove ( InstructionNode node ) : void
RemoveUselessIntegerCompareBranch ( InstructionNode node ) : void

Removes the unless integer compare branch.

ReplaceVirtualRegister ( Operand local, Operand replacement ) : void
SimpleConstantPropagation ( InstructionNode node ) : void

Simple constant propagation.

SimpleForwardCopyPropagation ( InstructionNode node ) : void

Simple copy propagation.

SimplifyExtendedMove ( InstructionNode node ) : void

Simplifies sign/zero extended move

SimplifyExtendedMoveWithConstant ( InstructionNode node ) : void

Simplifies extended moves with a constant

SimplifyPhi ( InstructionNode node ) : void

Simplifies the phi.

Unsign ( MosaType type, long value ) : ulong

Method Details

Finish() protected method

Finishes this instance.
protected Finish ( ) : void
return void

Run() protected method

protected Run ( ) : void
return void