Esempio n. 1
0
def insert_loop_token(old_loop_tokens, loop_token):
    # Find where in old_loop_tokens we should insert this new loop_token.
    # The following algo means "as late as possible, but before another
    # loop token that would be more general and so completely mask off
    # the new loop_token".
    for i in range(len(old_loop_tokens)):
        if more_general_specnodes(old_loop_tokens[i].specnodes,
                                  loop_token.specnodes):
            old_loop_tokens.insert(i, loop_token)
            break
    else:
        old_loop_tokens.append(loop_token)
Esempio n. 2
0
def test_more_general_specnodes():
    assert more_general_specnodes([prebuiltNotSpecNode, prebuiltNotSpecNode],
                                  [prebuiltNotSpecNode, prebuiltNotSpecNode])
    vspecnode1 = _get_vspecnode(1)
    vspecnode2 = _get_vspecnode(2)
    assert more_general_specnodes([vspecnode1], [vspecnode1])
    assert not more_general_specnodes([vspecnode1], [vspecnode2])
    assert not more_general_specnodes([vspecnode1], [prebuiltNotSpecNode])
    assert more_general_specnodes([prebuiltNotSpecNode], [vspecnode2])
    aspecnode1 = _get_aspecnode(1)
    aspecnode2 = _get_aspecnode(2)
    assert more_general_specnodes([aspecnode2], [aspecnode2])
    assert not more_general_specnodes([aspecnode1], [aspecnode2])
    assert not more_general_specnodes([aspecnode1], [prebuiltNotSpecNode])
    assert more_general_specnodes([prebuiltNotSpecNode], [aspecnode2])
    sspecnode1 = _get_sspecnode()
    assert more_general_specnodes([sspecnode1], [sspecnode1])
    assert not more_general_specnodes([sspecnode1], [prebuiltNotSpecNode])
    assert more_general_specnodes([prebuiltNotSpecNode], [sspecnode1])
    #
    foonode = _get_cspecnode('foo')
    barnode = _get_cspecnode('bar')
    assert more_general_specnodes([foonode], [foonode])
    assert not more_general_specnodes([foonode], [barnode])
    assert not more_general_specnodes([foonode], [prebuiltNotSpecNode])
    assert more_general_specnodes([prebuiltNotSpecNode], [foonode])
Esempio n. 3
0
def test_more_general_specnodes():
    assert more_general_specnodes([prebuiltNotSpecNode, prebuiltNotSpecNode],
                                  [prebuiltNotSpecNode, prebuiltNotSpecNode])
    vspecnode1 = _get_vspecnode(1)
    vspecnode2 = _get_vspecnode(2)
    assert more_general_specnodes([vspecnode1], [vspecnode1])
    assert not more_general_specnodes([vspecnode1], [vspecnode2])
    assert not more_general_specnodes([vspecnode1], [prebuiltNotSpecNode])
    assert more_general_specnodes([prebuiltNotSpecNode], [vspecnode2])
    aspecnode1 = _get_aspecnode(1)
    aspecnode2 = _get_aspecnode(2)
    assert more_general_specnodes([aspecnode2], [aspecnode2])
    assert not more_general_specnodes([aspecnode1], [aspecnode2])
    assert not more_general_specnodes([aspecnode1], [prebuiltNotSpecNode])
    assert more_general_specnodes([prebuiltNotSpecNode], [aspecnode2])
    sspecnode1 = _get_sspecnode()
    assert more_general_specnodes([sspecnode1], [sspecnode1])
    assert not more_general_specnodes([sspecnode1], [prebuiltNotSpecNode])
    assert more_general_specnodes([prebuiltNotSpecNode], [sspecnode1])
    #
    foonode = _get_cspecnode('foo')
    barnode = _get_cspecnode('bar')
    assert more_general_specnodes([foonode], [foonode])
    assert not more_general_specnodes([foonode], [barnode])
    assert not more_general_specnodes([foonode], [prebuiltNotSpecNode])
    assert more_general_specnodes([prebuiltNotSpecNode], [foonode])