pypy / pypy / doc / config / translation.backendopt.merge_if_blocks.txt

This optimization converts parts of flow graphs that result from
chains of ifs and elifs like this into merged blocks.

By default flow graphing this kind of code::

    if x == 0:
        f()
    elif x == 1:
        g()
    elif x == 4:
        h()
    else:
        j()

will result in a chain of blocks with two exits, somewhat like this:

.. image:: unmergedblocks.png

(reflecting how Python would interpret this code).  Running this
optimization will transform the block structure to contain a single
"choice block" with four exits:

.. image:: mergedblocks.png

This can then be turned into a switch by the C backend, allowing the C
compiler to produce more efficient code.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.