bytecode JUMP_IF_* always followed by POP_TOP?

Discussion in 'Python' started by Robert Brewer, Apr 22, 2004.

  1. Playing around with bytecodes some more:

    >>> def g(x):

    .... if x:
    .... y
    .... else:
    .... z
    ....
    >>> dis.dis(g)

    2 0 LOAD_FAST 0 (x)
    3 JUMP_IF_FALSE 8 (to 14)
    6 POP_TOP

    3 7 LOAD_GLOBAL 1 (y)
    10 POP_TOP
    11 JUMP_FORWARD 5 (to 19)
    >> 14 POP_TOP


    5 15 LOAD_GLOBAL 2 (z)
    18 POP_TOP
    >> 19 LOAD_CONST 0 (None)

    22 RETURN_VALUE

    I notice that, whether JUMP_IF_FALSE jumps or not, the next instruction
    it executes is POP_TOP (in the above, instruction numbers 6 and 14). Are
    there any constructions whereby this does not happen for JUMP_IF_FALSE
    and JUMP_IF_TRUE? If there aren't, is it just explicitness that kept
    JUMP_IF_* from doing the POP on its own, before the jump (which would
    thereby save two instructions)?


    Robert Brewer
    MIS
    Amor Ministries
     
    Robert Brewer, Apr 22, 2004
    #1
    1. Advertising

  2. On Thu, 22 Apr 2004 13:48:16 -0700, rumours say that "Robert Brewer"
    <> might have written:

    >I notice that, whether JUMP_IF_FALSE jumps or not, the next instruction
    >it executes is POP_TOP (in the above, instruction numbers 6 and 14).


    The following thread is relevant <long URL>:

    <URL:http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=bpr6musc14m74uqss78iehtl72h9qrmu7o%404ax.com&rnum=1&prev=/groups%3Fq%3Dgroup%253Acomp.lang.python%2BPOP_TOP%2Bauthor%253ATZOTZIOY%26ie%3DUTF-8%26oe%3DUTF-8%26hl%3Den>

    Check also my next message in that thread.

    I remember the results were not that impressive in pystone and some
    other benchmarks (1-2% or less).
    --
    TZOTZIOY, I speak England very best,
    Ils sont fous ces Redmontains! --Harddix
     
    Christos TZOTZIOY Georgiou, Apr 23, 2004
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Brent
    Replies:
    1
    Views:
    1,564
  2. =?Utf-8?B?QW5kcmU=?=

    Stylesheets are not followed after migration

    =?Utf-8?B?QW5kcmU=?=, Mar 30, 2006, in forum: ASP .Net
    Replies:
    6
    Views:
    387
    Gerry Hickman
    Apr 13, 2006
  3. Replies:
    1
    Views:
    368
    Roedy Green
    Aug 12, 2005
  4. Fahad
    Replies:
    0
    Views:
    1,478
    Fahad
    Nov 16, 2005
  5. Rhino
    Replies:
    14
    Views:
    7,622
    Chris Uppal
    Dec 14, 2005
Loading...

Share This Page