aiPop features functional abstraction for common basic blocks (also known as "reverse inlining"):

  1. aiPop identifies multiple occurrences of instruction sequences.
  2. It then creates one representative sequence.
  3. The multiple occurrences are then replaced by calls to the representative sequence.

It goes without saying that functional abstraction yields the best results when applied to the entire application.