swift
5f561ed5 - [SAO] Add RedundantMoveValueElimination.

Commit
2 years ago
[SAO] Add RedundantMoveValueElimination. Adds to SemanticARCOpts a new step of removing move_value instructions if they are redundant. A move_value is redundant if it adds no new information or optimization opportunities. An example of adding information: a lifetime becoming lexical. The new lifetime's destroys cannot be hoisted over deinit barriers. An example of adding an optimization opportunity: the original value escapes but the value produced by the move_value does not escape. So destroys of the new value can be hoisted more aggressively.
Author
Committer
Parents
  • lib/SILOptimizer/SemanticARC
    • File
      CMakeLists.txt
    • File
      RedundantMoveValueElimination.cpp
    • File
      SemanticARCOptVisitor.h
    • File
      SemanticARCOpts.cpp
    • File
      SemanticARCOpts.h
  • test/SILOptimizer
    • semantic-arc-opts-redundant-move-elimination.sil