Skip to documentation
SLOP

tiny.accy.preparation.shape

Reference tiny.accy preparation shape

Defined in preparation.

API (13)

Actions

Public operations.

Types and contracts

Public types and contracts.

Values and defaults

Public values and defaults.

No direct callersNo direct callspreparationshape
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/accy/src/preparation/shape/pass.zig:38

zig
pub const ShapeLayoutAnalysis = struct {    allocator: std.mem.Allocator,    tensors: std.AutoHashMap(*ir.Value, TensorInfo),    tensor_value_count: usize = 0,    accy_op_count: usize = 0,    pub fn init(allocator: std.mem.Allocator) ShapeLayoutAnalysis {        return .{            .allocator = allocator,            .tensors = std.AutoHashMap(*ir.Value, TensorInfo).init(allocator),        };    }    pub fn deinit(self: *ShapeLayoutAnalysis) void {        var iter = self.tensors.valueIterator();        while (iter.next()) |info| {            info.deinit(self.allocator);        }        self.tensors.deinit();        self.* = undefined;    }    pub fn get(self: *const ShapeLayoutAnalysis, value: *ir.Value) ?TensorInfo {        return self.tensors.get(value);    }    fn recordValue(self: *ShapeLayoutAnalysis, value: *ir.Value) !void {        const info = try tensorInfoFromType(self.allocator, value.type) orelse return;        errdefer {            var mutable = info;            mutable.deinit(self.allocator);        }        self.tensors.putAssumeCapacityNoClobber(value, info);        self.tensor_value_count += 1;    }};

Source: lib/accy/src/preparation/shape/pass.zig:17

zig
pub const TensorInfo = struct {    dtype: choir_abi.DType,    dims: []i64,    element_count: ?u64,    row_major_strides: ?[]u64,    pub fn rank(self: TensorInfo) usize {        return self.dims.len;    }    pub fn hasStaticLayout(self: TensorInfo) bool {        return self.element_count != null and self.row_major_strides != null;    }    fn deinit(self: *TensorInfo, allocator: std.mem.Allocator) void {        allocator.free(self.dims);        if (self.row_major_strides) |strides| allocator.free(strides);        self.* = undefined;    }};
Called byCallsNo direct callsprivate sourcelib.accy.src.preparation.shape.passcomputeShapeLayoutAnalysispreparation.shape.ShapeLayoutAnalysisinit
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/preparation/shape/pass.zig:166

zig
pub fn getShapeLayoutAnalysis(    pass_ctx: *passes.PassContext,    op: *ir.Operation,) !*ShapeLayoutAnalysis {    return ShapeLayoutAnalysisRegistration.get(pass_ctx, op);}
Called byCallsNo direct callsprivate sourcelib.accy.src.preparation.shape.passrunShapeLayoutPropagationPasstest sourcelib.accy.src.preparation.shape.passtest: shape layout analysis records a...preparation.shapegetShapeLayoutAnalysis
Static calls · unresolved targets: 1 · external targets: 0.

Source: lib/accy/src/preparation/shape/pass.zig:173

zig
pub fn shapeLayoutPropagationPass() passes.Pass {    return .{        .name = shape_layout_pass_name,        .description = shape_layout_pass_description,        .run_fn = runShapeLayoutPropagationPass,        .work_contract = .{            .identity = .{ .name = shape_layout_pass_name, .version = 1 },            .estimate = propagationWork,        },    };}
Called byCallsNo direct callsprivate sourcelib.accy.src.preparation.shape.passcheckShapeBudgettest sourcelib.accy.src.preparation.shape.passtest: shape layout propagation pass p...preparation.shapeshapeLayoutPropagationPass
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/accy/src/preparation/shape/pass.zig:12

zig
pub const shape_layout_analysis_name = "accy-choir-shape-layout";

Source: lib/accy/src/preparation/shape/pass.zig:14

zig
pub const shape_layout_pass_description =    "Decode Accy Choir tensor shape and row-major layout facts";

Source: lib/accy/src/preparation/shape/pass.zig:164

zig
pub const shape_layout_analysis_descriptor = ShapeLayoutAnalysisRegistration.descriptor;

Source: lib/accy/src/preparation/root.zig:22

zig
pub const shape = @import("shape/root.zig");

Source: lib/accy/src/preparation/shape/root.zig

zig
const pass = @import("pass.zig");pub const shape_layout_analysis_name = pass.shape_layout_analysis_name;pub const shape_layout_pass_name = pass.shape_layout_pass_name;pub const shape_layout_pass_description = pass.shape_layout_pass_description;pub const TensorInfo = pass.TensorInfo;pub const ShapeLayoutAnalysis = pass.ShapeLayoutAnalysis;pub const shape_layout_analysis_descriptor = pass.shape_layout_analysis_descriptor;pub const getShapeLayoutAnalysis = pass.getShapeLayoutAnalysis;pub const shapeLayoutPropagationPass = pass.shapeLayoutPropagationPass;

Audit

Definitions13
Public names13
Members8
Version26.7.0
Revisiondaab053ee433