Beispiel #1
0
def test_copy_elimination():
    x = np.array([[1, 2, 3], [4, 5, 6]])
    expect(nested_add1, [x], x + 1.0)
    typed_fn = parakeet.typed_repr(nested_add1, [x])
    lowered = lowering.apply(typed_fn)
    n_loops = count_loops(lowered)
    n_expected = 3 if config.opt_loop_unrolling else 2
    assert n_loops <= n_expected, \
        "Too many loops generated! Expected at most 2, got %d" % n_loops
Beispiel #2
0
def test_copy_elimination():
  x = np.array([[1,2,3],[4,5,6]])
  expect(nested_add1, [x], x + 1.0)
  typed_fn = parakeet.typed_repr(nested_add1, [x])
  lowered = lowering.apply(typed_fn)
  n_loops = count_loops(lowered)
  n_expected = 3 if config.opt_loop_unrolling else 2
  assert n_loops <= n_expected, \
      "Too many loops generated! Expected at most 2, got %d" % n_loops
def test_mutable_array():
  bool_vec = np.array([True, False])
  int_vec = np.array([1,2])
  typed, _, =  specialize(f, [bool_vec, int_vec])
   
  mutable_types = mutability_analysis.find_mutable_types(typed)
  int_array_t = make_array_type(Int64, 1)
  bool_array_t = make_array_type(Bool, 1)
  assert int_array_t not in mutable_types, \
      "Didn't expect %s in mutable_types %s" % (int_array_t, mutable_types)
  assert bool_array_t in mutable_types, \
      "Expected %s in mutable_types %s" % (bool_array_t, mutable_types)
      
  lowered = lowering.apply(typed)
  mutable_types = mutability_analysis.find_mutable_types(lowered)
  ptr_bool_t = ptr_type(Bool)
  ptr_int_t = ptr_type(Int64) 
  assert ptr_int_t not in mutable_types, \
      "Didn't expect %s in lowered mutable types %s" % \
      (ptr_int_t, mutable_types)
  assert ptr_bool_t in mutable_types, \
      "Expected %s in lowered mutable_types %s" % (ptr_bool_t, mutable_types)
def test_mutable_array():
    bool_vec = np.array([True, False])
    int_vec = np.array([1, 2])
    typed, _, = specialize(f, [bool_vec, int_vec])

    mutable_types = mutability_analysis.find_mutable_types(typed)
    int_array_t = make_array_type(Int64, 1)
    bool_array_t = make_array_type(Bool, 1)
    assert int_array_t not in mutable_types, \
        "Didn't expect %s in mutable_types %s" % (int_array_t, mutable_types)
    assert bool_array_t in mutable_types, \
        "Expected %s in mutable_types %s" % (bool_array_t, mutable_types)

    lowered = lowering.apply(typed)
    mutable_types = mutability_analysis.find_mutable_types(lowered)
    ptr_bool_t = ptr_type(Bool)
    ptr_int_t = ptr_type(Int64)
    assert ptr_int_t not in mutable_types, \
        "Didn't expect %s in lowered mutable types %s" % \
        (ptr_int_t, mutable_types)
    assert ptr_bool_t in mutable_types, \
        "Expected %s in lowered mutable_types %s" % (ptr_bool_t, mutable_types)