Пример #1
0
 def __init__(self, schedule=None, coincident=None, permutable=None, **kwargs):
     super().__init__(**kwargs)
     if schedule is None or isinstance(schedule, str):
         schedule = isl.multi_union_pw_aff(schedule or '[]')
     if coincident is None:
         coincident = [False] * schedule.size()
     else:
         coincident = list(map(bool, coincident))
     self.schedule: isl.multi_union_pw_aff = schedule
     self.coincident: List[bool] = coincident
     self.permutable: bool = bool(permutable)
Пример #2
0
def construct_schedule_tree():
    A = isl.union_set("{ A[i] : 0 <= i < 10 }")
    B = isl.union_set("{ B[i] : 0 <= i < 20 }")

    node = isl.schedule_node.from_domain(A.union(B))
    node = node.child(0)

    filters = isl.union_set_list(A).add(B)
    node = node.insert_sequence(filters)

    f_A = isl.multi_union_pw_aff("[ { A[i] -> [i] } ]")
    node = node.child(0)
    node = node.child(0)
    node = node.insert_partial_schedule(f_A)
    node = node.member_set_coincident(0, True)
    node = node.ancestor(2)

    f_B = isl.multi_union_pw_aff("[ { B[i] -> [i] } ]")
    node = node.child(1)
    node = node.child(0)
    node = node.insert_partial_schedule(f_B)
    node = node.ancestor(2)

    return node.schedule()
Пример #3
0
def construct_schedule_tree():
	A = isl.union_set("{ A[i] : 0 <= i < 10 }")
	B = isl.union_set("{ B[i] : 0 <= i < 20 }")

	node = isl.schedule_node.from_domain(A.union(B))
	node = node.child(0)

	filters = isl.union_set_list(A).add(B)
	node = node.insert_sequence(filters)

	f_A = isl.multi_union_pw_aff("[ { A[i] -> [i] } ]")
	node = node.child(0)
	node = node.child(0)
	node = node.insert_partial_schedule(f_A)
	node = node.member_set_coincident(0, True)
	node = node.ancestor(2)

	f_B = isl.multi_union_pw_aff("[ { B[i] -> [i] } ]")
	node = node.child(1)
	node = node.child(0)
	node = node.insert_partial_schedule(f_B)
	node = node.ancestor(2)

	return node.schedule()