• Damien George's avatar
    py/emit: Suppress unreachable bytecode/native code that follows jump. · a5063355
    Damien George authored
    
    
    This new logic tracks when an unconditional jump/raise occurs in the
    emitted code stream (bytecode or native machine code) and suppresses all
    subsequent code, until a label is assigned.  This eliminates a lot of
    cases of dead code, with relatively simple logic.
    
    This commit combined with the previous one (that removed the existing
    dead-code finding logic) has the following code size change:
    
           bare-arm:   -16 -0.028%
        minimal x86:   -60 -0.036%
           unix x64:  -368 -0.070%
        unix nanbox:   -80 -0.017%
              stm32:  -204 -0.052% PYBV10
             cc3200:    +0 +0.000%
            esp8266:  -232 -0.033% GENERIC
              esp32:  -224 -0.015% GENERIC[incl -40(data)]
             mimxrt:  -192 -0.054% TEENSY40
         renesas-ra:  -200 -0.032% RA6M2_EK
                nrf:   +28 +0.015% pca10040
                rp2:  -256 -0.050% PICO
               samd:   -12 -0.009% ADAFRUIT_ITSYBITSY_M4_EXPRESS
    Signed-off-by: default avatarDamien George <damien@micropython.org>
    a5063355
asmbase.h 2.71 KB