scala.scalanative.optimizer

pass

package pass

Visibility
  1. Public
  2. All

Type Members

  1. class AllocLowering extends Pass

    Hoists all stack allocations to the entry basic block and maps class allocations to calls to the gc allocator.

  2. class AsLowering extends Pass

    Translates high-level casts to corresponding low-level instructions.

  3. class BasicBlocksFusion extends Pass

  4. class BlockParamReduction extends Pass

  5. class BoxingLowering extends Pass

    Translates Box/Unbox ops into static method calls.

  6. class Canonicalization extends Pass

    Moves constant operands in Op.

  7. class CfChainsSimplification extends Pass

  8. class ClassLowering extends Pass

    Lowers class definitions, and field accesses to structs and corresponding derived pointer computation.

  9. class ClosureLowering extends Pass

    Translates high-level closures to corresponding class allocation.

  10. class ConstLowering extends Pass

    Maps const values to top-level deduplicated constants.

  11. class ConstantFolding extends Pass

    For operations with constant operands and no side-effects, compute the resulting value

  12. class CopyPropagation extends Pass

    Propagates all copies down the use chain.

  13. class DeadBlockElimination extends Pass

  14. class DeadCodeElimination extends Pass

    Eliminates pure computations that are not being used, as well as unused block parameters.

  15. class DynmethodLowering extends Pass

    Translates high-level structural-type method calls into low-level dispatch based on a dynmethodtable

  16. class ExternHoisting extends Pass

    Hoists external members from external modules to top-level scope.

  17. class GlobalBoxingElimination extends Pass

    Eliminates redundant box/unbox operations within a single method definition.

  18. class GlobalValueNumbering extends Pass

  19. class InstCombine extends Pass

  20. class IsLowering extends Pass

    Translates instance checks to range checks on type ids.

  21. class MethodLowering extends Pass

    Translates high-level object-oriented method calls into low-level dispatch based on vtables for classes and dispatch tables for interfaces.

  22. class ModuleLowering extends Pass

    Lowers modules into module classes with singleton instance stored in a global variable that is accessed through a dedicated accessor function.

  23. class NothingLowering extends Pass

    Short-circuits method calls that return nothing.

  24. class PartialEvaluation extends Pass

    Simplifies single instruction patterns

  25. class SizeofLowering extends Pass

    Maps sizeof computation to pointer arithmetics over null pointer.

  26. class StringLowering extends Pass

    Maps string values to intrinsified global constants.

  27. class TraitLowering extends Pass

    Eliminates traits and injects trait method and instance dispatch tables into the assembly.

  28. class TypeValueLowering extends Pass

    Generates type instances for all classes, modules, traits and structs.

  29. class UnitLowering extends Pass

    Eliminates returns of Unit values and replaces them with void.

  30. class UnitSimplification extends Pass

Ungrouped