[][src]Module weld::ast

Defines the Weld abstract syntax tree.

Most of Weld's optimizations occur over the AST, which doubles as a "High-Level IR." The AST captures the expressions in Weld using a tree data structure.

Modules

prelude

A prelude for using the AST.

Structs

Annotations

An annotation over a type or expression.

Expr

A typed Weld expression tree.

Iter

An iterator, which specifies a vector to iterate over and optionally a start index, end index, and stride.

Parameter

A Parameter in a Lambda.

PrettyPrintConfig

A struct used to configure pretty printing.

Symbol

A named symbol in the Weld AST.

Enums

BinOpKind

Binary operators over numerical values in the Weld IR.

BuilderKind

Builder types in the Weld IR.

ExprKind

Expressions in the Weld IR.

IterKind

Iterator kinds in the Weld IR.

LiteralKind

Literal types in the Weld IR.

ScalarKind

Scalar types in the Weld IR.

Type

Types in the Weld IR.

UnaryOpKind

Unary operators over numerical values in the Weld IR.

Traits

CompareIgnoringSymbols

A trait for symbol-agnostic tree comparison.

HashIgnoringSymbols

A trait that implements symbol-agnostic hashing.

InferTypes

A trait for checking and infering types in-place.

NewExpr

A trait for initializing expressions with type inference.

Placeholder

Creates a placeholder expression.

PrettyPrint

A trait for pretty printing expression trees.

Takeable

Takes an expression, replacing it with a placeholder.

Uniquify

A trait that uniquifies symbol names in-place.

Functions

expr_box

Create a box containing an untyped expression of the given kind.