Documentation
¶
Index ¶
- func DeadCodeElimination(function *gen.FunctionInfo) core.ResultList
- func FileToDeadCodeElimination(file *gen.FileInfo) core.ResultList
- func TransformFileToDeadCodeElimination(data *transform.TargetData) (*transform.TargetData, core.ResultList)
- type CriticalInstruction
- type DCESupportedInstruction
- type DefinesNothingInstruction
- type DefinesTargetsInstruction
- type NonCriticalInstruction
- type UsesArgumentsInstruction
- type UsesNothingInstruction
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeadCodeElimination ¶
func DeadCodeElimination(function *gen.FunctionInfo) core.ResultList
func FileToDeadCodeElimination ¶
func FileToDeadCodeElimination(file *gen.FileInfo) core.ResultList
func TransformFileToDeadCodeElimination ¶
func TransformFileToDeadCodeElimination( data *transform.TargetData, ) (*transform.TargetData, core.ResultList)
Types ¶
type CriticalInstruction ¶
type CriticalInstruction struct{}
func (CriticalInstruction) IsCritical ¶
func (CriticalInstruction) IsCritical(*gen.InstructionInfo) bool
type DCESupportedInstruction ¶
type DCESupportedInstruction interface {
gen.InstructionDefinition
// Returns true if the instruction is a critical instruction, which means
// it can't be removed by the dead code elimination process, by definition.
//
// A critical instruction might be a function call, a branch, an instruction
// with a side effect, etc.
IsCritical(info *gen.InstructionInfo) bool
// Returns the registers that the instruction defines, directly or indirectly.
Defines(info *gen.InstructionInfo) []*gen.RegisterInfo
// Returns the registers that the instruction uses, directly or indirectly.
Uses(info *gen.InstructionInfo) []*gen.RegisterInfo
}
type DefinesNothingInstruction ¶
type DefinesNothingInstruction struct{}
func (DefinesNothingInstruction) Defines ¶
func (DefinesNothingInstruction) Defines(*gen.InstructionInfo) []*gen.RegisterInfo
type DefinesTargetsInstruction ¶
type DefinesTargetsInstruction struct{}
func (DefinesTargetsInstruction) Defines ¶
func (DefinesTargetsInstruction) Defines(info *gen.InstructionInfo) []*gen.RegisterInfo
type NonCriticalInstruction ¶
type NonCriticalInstruction struct{}
func (NonCriticalInstruction) IsCritical ¶
func (NonCriticalInstruction) IsCritical(*gen.InstructionInfo) bool
type UsesArgumentsInstruction ¶
type UsesArgumentsInstruction struct{}
func (UsesArgumentsInstruction) Uses ¶
func (UsesArgumentsInstruction) Uses(info *gen.InstructionInfo) []*gen.RegisterInfo
type UsesNothingInstruction ¶
type UsesNothingInstruction struct{}
func (UsesNothingInstruction) Uses ¶
func (UsesNothingInstruction) Uses(*gen.InstructionInfo) []*gen.RegisterInfo
Click to show internal directories.
Click to hide internal directories.