Reference: Abstract Syntax Trees

Added in version 2014.1.

Symbolic Constants

class islpy.ast_expr_op_type(*values)
access = 23
add = 7
address_of = 25
and_ = 0
and_then = 1
call = 22
cond = 15
div = 10
eq = 17
error = -1
fdiv_q = 11
ge = 20
gt = 21
le = 18
lt = 19
max = 4
member = 24
min = 5
minus = 6
mul = 9
or_ = 2
or_else = 3
pdiv_q = 12
pdiv_r = 13
select = 16
sub = 8
zdiv_r = 14
class islpy.ast_expr_type(*values)
error = -1
id = 1
int = 2
op = 0
class islpy.ast_node_type(*values)
block = 3
error = -1
for_ = 1
if_ = 2
mark = 4
user = 5
class islpy.ast_loop_type(*values)
atomic = 1
default = 0
error = -1
separate = 3
unroll = 2

AST Expression

class islpy.AstExpr
__eq__(other: object) → bool

Return self==value.

__hash__()

Return hash(self).

__ne__(value, /)

Return self!=value.

access(self, indices: AstExprList) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

add(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

address_of(self) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

and_(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

and_then(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

call(self, arguments: AstExprList) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

copy(self) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

div(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

dump(self) → None

Warning

This function is not part of the officially public isl API. Use at your own risk.

eq(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

from_id = <nanobind.nb_func object>
from_val = <nanobind.nb_func object>
ge(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_ctx(self) → Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_id(self) → Id

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_op_arg(self, pos: int) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_op_n_arg(self) → int

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_op_type(self) → int

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_type(self) → int

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_val(self) → Val

Warning

This function is not part of the officially public isl API. Use at your own risk.

gt(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

id_get_id(self) → Id
int_get_val(self) → Val
is_equal(self, expr2: AstExpr) → bool

Warning

This function is not part of the officially public isl API. Use at your own risk.

le(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

lt(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

mul(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

neg(self) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

op_get_arg(self, pos: int) → AstExpr
op_get_n_arg(self) → int
op_get_type(self) → int

Warning

This function is not part of the officially public isl API. Use at your own risk.

op_type_set_print_name = <nanobind.nb_func object>
or_(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

or_else(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

pdiv_q(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

pdiv_r(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_macros(self, p: Printer) → Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_op_arg(self, pos: int, arg: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

sub(self, expr2: AstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

substitute_ids(self, id2expr: IdToAstExpr) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

to_C_str(self) → str
to_list(self) → AstExprList

Warning

This function is not part of the officially public isl API. Use at your own risk.

to_str(self) → str

Warning

This function is not part of the officially public isl API. Use at your own risk.

AST Node

class islpy.AstNode
__eq__(_other: object) → bool

Return self==value.

__hash__()

Return hash(self).

__ne__(_other: object) → bool

Return self!=value.

alloc_user = <nanobind.nb_func object>
block_get_children(self) → AstNodeList
copy(self) → AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

dump(self) → None

Warning

This function is not part of the officially public isl API. Use at your own risk.

for_get_body(self) → AstNode
for_get_cond(self) → AstExpr
for_get_inc(self) → AstExpr
for_get_init(self) → AstExpr
for_get_iterator(self) → AstExpr
for_is_degenerate(self) → bool
for_print(self, p: Printer, options: AstPrintOptions) → Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

foreach_descendant_top_down(self, fn: Callable[[AstNode], bool]) → None
Parameters:

fn – callback(node)

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_annotation(self) → Id

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_ctx(self) → Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_type(self) → int

Warning

This function is not part of the officially public isl API. Use at your own risk.

if_get_cond(self) → AstExpr
if_get_else(self) → AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

if_get_else_node(self) → AstNode
if_get_then(self) → AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

if_get_then_node(self) → AstNode
if_has_else(self) → bool

Warning

This function is not part of the officially public isl API. Use at your own risk.

if_has_else_node(self) → bool
if_print(self, p: Printer, options: AstPrintOptions) → Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

map_descendant_bottom_up(self, fn: Callable[[AstNode], AstNode]) → AstNode
Parameters:

fn – callback(node)

mark_get_id(self) → Id
mark_get_node(self) → AstNode
print_(self, p: Printer, options: AstPrintOptions) → Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

print_macros(self, p: Printer) → Printer
..note::

{arg.name} becomes invalid)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_annotation(self, annotation: Id) → AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

to_C_str(self) → str
to_list(self) → AstNodeList
to_str(self) → str

Warning

This function is not part of the officially public isl API. Use at your own risk.

user_from_expr = <nanobind.nb_func object>
user_get_expr(self) → AstExpr

AST Build

class islpy.AstBuild
__eq__(_other: object) → bool

Return self==value.

__hash__()

Return hash(self).

__ne__(_other: object) → bool

Return self!=value.

access_from_multi_pw_aff(self, mpa: MultiPwAff) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

access_from_pw_multi_aff(self, pma: PwMultiAff | MultiAff) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

alloc = <nanobind.nb_func object>
ast_from_schedule(self, schedule: UnionMap | BasicMap | Map) → AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

call_from_multi_pw_aff(self, mpa: MultiPwAff) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

call_from_pw_multi_aff(self, pma: PwMultiAff | MultiAff) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

copy(self) → AstBuild

Warning

This function is not part of the officially public isl API. Use at your own risk.

expr_from_pw_aff(self, pa: PwAff | Aff) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

expr_from_set(self, set: Set | BasicSet) → AstExpr

Warning

This function is not part of the officially public isl API. Use at your own risk.

from_context = <nanobind.nb_func object>
get_ctx(self) → Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_schedule(self) → UnionMap
get_schedule_space(self) → Space

Warning

This function is not part of the officially public isl API. Use at your own risk.

node_from_schedule(self, schedule: Schedule) → AstNode

Warning

This function is not part of the officially public isl API. Use at your own risk.

node_from_schedule_map(self, schedule: UnionMap | BasicMap | Map) → AstNode
restrict(self, set: Set | BasicSet) → AstBuild

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_after_each_for(self, fn: Callable[[AstNode, AstBuild], AstNode]) → tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(node, build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_after_each_mark(self, fn: Callable[[AstNode, AstBuild], AstNode]) → tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(node, build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_at_each_domain(self, fn: Callable[[AstNode, AstBuild], AstNode]) → tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(node, build)

set_before_each_for(self, fn: Callable[[AstBuild], Id]) → tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_before_each_mark(self, fn: Callable[[Id, AstBuild], None]) → tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(mark, build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_create_leaf(self, fn: Callable[[AstBuild], AstNode]) → tuple[AstBuild, CallbackLifetimeHandle]
Parameters:

fn – callback(build)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_iterators(self, iterators: IdList) → AstBuild

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_options(self, options: UnionMap | BasicMap | Map) → AstBuild

Warning

This function is not part of the officially public isl API. Use at your own risk.

AST Print Options

class islpy.AstPrintOptions
__eq__(_other: object) → bool

Return self==value.

__hash__()

Return hash(self).

__ne__(_other: object) → bool

Return self!=value.

alloc = <nanobind.nb_func object>
copy(self) → AstPrintOptions

Warning

This function is not part of the officially public isl API. Use at your own risk.

get_ctx(self) → Context

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_print_for(self, print_for: Callable[[Printer, AstPrintOptions, AstNode], Printer]) → tuple[AstPrintOptions, CallbackLifetimeHandle]
Parameters:

print_for – callback(p, options, node)

Warning

This function is not part of the officially public isl API. Use at your own risk.

set_print_user(self, print_user: Callable[[Printer, AstPrintOptions, AstNode], Printer]) → tuple[AstPrintOptions, CallbackLifetimeHandle]
Parameters:

print_user – callback(p, options, node)

Warning

This function is not part of the officially public isl API. Use at your own risk.

Canonical Names for Internal Module

class islpy._isl.ast_expr_op_type

See islpy.ast_expr_op_type.

class islpy._isl.ast_expr_type

See islpy.ast_expr_type.

class islpy._isl.ast_node_type

See islpy.ast_node_type.

class islpy._isl.ast_loop_type

See islpy.ast_loop_type.

class islpy._isl.AstExpr

See islpy.AstExpr.

class islpy._isl.AstNode

See islpy.AstNode.

class islpy._isl.AstBuild

See islpy.AstBuild.

class islpy._isl.AstPrintOptions

See islpy.AstPrintOptions.