tiny.choir.ir.dialects
Defined in ir.
API (57)
Actions
Public operations.
dialectSpecloadDialectSpecoperandoperandIndexoperandSegmentValueoperandSegmentValuesoperationoperationAttributeoperationDialectAttributeNameoperationNameoperationNameForoperationNamesoperationsoptionalOperandoptionalRegionoptionalResultoptionalSuccessorregionregionIndexresultresultIndexresultSegmentValueresultSegmentValuessegmentSizeAttributesetOperandSegmentSizessetResultSegmentSizessetSegmentSizessuccessorsuccessorIndextraittypeNametypeNames
Types and contracts
Public types and contracts.
AttributeSpecAttributeStorageDialectDialectExtensionFnDialectLoadStateDialectLoaderFnDialectRegistryDialectRegistryEntryDialectRegistrySpecDialectSpecDialectSpecOptionsOpInterfaceFallbackEntryOpInterfaceFallbackFnOperationSpecOperationTraitSpecTypeInterfaceFallbackEntryTypeInterfaceFallbackFnTypeSpecattributeopSpecoperationTemplatesegmentsshapetypeConstraint
Namespaces
Public namespaces.
Source
Source: lib/choir/src/core/dialects/spec.zig:35
pub const AttributeSpec = struct { name: []const u8, storage: AttributeStorage = .any,};Source: lib/choir/src/core/dialects/spec.zig:27
pub const AttributeStorage = union(enum) { any, i64, bool, string, dialect: []const u8,};Source: lib/choir/src/core/dialects/spec.zig:657
pub const DialectSpec = struct { name: []const u8, operations: []const OperationSpec = &.{}, types: []const TypeSpec = &.{}, dialect_attributes: []const []const u8 = &.{}, interfaces: []const interfaces.InterfaceEntry = &.{}, op_interface_fallbacks: []const OpInterfaceFallbackEntry = &.{}, type_interface_fallbacks: []const TypeInterfaceFallbackEntry = &.{},};Source: lib/choir/src/core/dialects/spec.zig:667
pub const DialectSpecOptions = struct { types: []const TypeSpec = &.{}, dialect_attributes: []const []const u8 = &.{}, interfaces: []const interfaces.InterfaceEntry = &.{}, op_interface_fallbacks: []const OpInterfaceFallbackEntry = &.{}, type_interface_fallbacks: []const TypeInterfaceFallbackEntry = &.{},};Source: lib/choir/src/core/dialects/spec.zig:40
pub const OperationSpec = struct { name: []const u8, traits: interfaces.OperationTraits = .{}, shape: interfaces.OperationShape = .{}, operand_names: []const []const u8 = &.{}, result_names: []const []const u8 = &.{}, region_names: []const []const u8 = &.{}, successor_names: []const []const u8 = &.{}, inherent_attribute_names: []const []const u8 = &.{}, required_attribute_names: []const []const u8 = &.{}, attribute_specs: []const AttributeSpec = &.{}, operand_segments: ?interfaces.OperationSegmentSpec = null, result_segments: ?interfaces.OperationSegmentSpec = null, operand_type_constraints: []const interfaces.OperationTypeConstraint = &.{}, result_type_constraints: []const interfaces.OperationTypeConstraint = &.{}, properties_model: ?interfaces.OperationPropertiesModel = null, interfaces: []const interfaces.InterfaceEntry = &.{}, dynamic_traits: []const OperationTraitSpec = &.{},};Source: lib/choir/src/core/dialects/spec.zig:21
pub const OperationTraitSpec = struct { id: interfaces.TraitId, entry: ?interfaces.TraitEntry = null, traits: interfaces.OperationTraits = .{},};Source: lib/choir/src/core/dialects/spec.zig:652
pub const TypeSpec = struct { name: []const u8, interfaces: []const interfaces.InterfaceEntry = &.{},};Source: lib/choir/src/core/dialects/spec.zig:675
pub fn dialectSpec(comptime DialectType: type, comptime options: DialectSpecOptions) DialectSpec { if (!@hasDecl(DialectType, "name")) @compileError("dialect type must declare name"); return .{ .name = DialectType.name, .operations = operations(DialectType), .types = options.types, .dialect_attributes = options.dialect_attributes, .interfaces = options.interfaces, .op_interface_fallbacks = options.op_interface_fallbacks, .type_interface_fallbacks = options.type_interface_fallbacks, };}Source: lib/choir/src/core/dialects/spec.zig:2580
pub fn loadDialectSpec(ctx: *Context, spec: DialectSpec) !void { if (dialectSpecLoaded(ctx, spec)) return; try ensureDialectSpecLoaded(ctx, spec); try ctx.prepareDialectLoadRecordStorage(spec.name, spec.operations.len, spec.types.len); try registerDialectAttributes(ctx, spec.dialect_attributes); try ctx.registerOperationBatch(spec.operations); for (spec.operations) |op| try registerOperationDetails(ctx, op); try ctx.registerTypeBatch(spec.types); for (spec.types) |typ| { for (typ.interfaces) |entry| { ctx.registerTypeInterface(typ.name, entry) catch |err| switch (err) { error.DuplicateInterface => {}, else => return err, }; } } for (spec.interfaces) |entry| { ctx.registerDialectInterface(spec.name, entry) catch |err| switch (err) { error.DuplicateInterface => {}, else => return err, }; } for (spec.op_interface_fallbacks) |entry| { ctx.registerDialectOpInterfaceFallback(spec.name, entry.id, entry.fallback) catch |err| switch (err) { error.DuplicateInterface => {}, else => return err, }; } for (spec.type_interface_fallbacks) |entry| { ctx.registerDialectTypeInterfaceFallback(spec.name, entry.id, entry.fallback) catch |err| switch (err) { error.DuplicateInterface => {}, else => return err, }; }}Source: lib/choir/src/core/dialects/spec.zig:67
pub fn operand(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) *IrValue { return op.getOperand(operandIndex(spec, component_name)).?;}Source: lib/choir/src/core/dialects/spec.zig:154
pub fn operandIndex(comptime spec: OperationSpec, comptime component_name: []const u8) usize { return componentIndex(spec.operand_names, "operand", component_name);}Source: lib/choir/src/core/dialects/spec.zig:133
pub fn operandSegmentValue(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) ?*IrValue { const values = operandSegmentValues(spec, op, component_name) orelse return null; if (values.len != 1) return null; return values[0];}Source: lib/choir/src/core/dialects/spec.zig:124
pub fn operandSegmentValues(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) ?[]const *IrValue { const segment_spec = spec.operand_segments orelse @compileError("operation has no operand segments: " ++ spec.name); const index = comptime operandIndex(spec, component_name); const bounds = segmentBounds(segment_spec, op, index) orelse return null; if (bounds.offset > op.operand_values.len) return null; if (bounds.size > op.operand_values.len - bounds.offset) return null; return op.operand_values[bounds.offset .. bounds.offset + bounds.size];}Source: lib/choir/src/core/dialects/spec.zig:2437
pub fn operation(comptime OpType: type) OperationSpec { return operationSpecWithName(operationNameFor(OpType), OpType);}Source: lib/choir/src/core/dialects/spec.zig:1345
pub fn operationAttribute(comptime spec: OperationSpec, comptime attr_name: []const u8) AttributeSpec { inline for (spec.attribute_specs) |attribute_spec| { if (comptime std.mem.eql(u8, attribute_spec.name, attr_name)) return attribute_spec; } @compileError("unknown operation attribute: " ++ attr_name);}Source: lib/choir/src/core/dialects/spec.zig:1352
pub fn operationDialectAttributeName(comptime spec: OperationSpec, comptime attr_name: []const u8) []const u8 { const attribute_spec = comptime operationAttribute(spec, attr_name); return switch (attribute_spec.storage) { .dialect => |dialect_attr_name| dialect_attr_name, .any => @compileError("operation attribute does not declare dialect storage: " ++ attr_name), else => @compileError("operation attribute is not dialect-backed: " ++ attr_name), };}Source: lib/choir/src/core/dialects/spec.zig:688
pub fn operationName(comptime dialect_name: []const u8, comptime mnemonic: []const u8) []const u8 { if (dialect_name.len == 0) @compileError("dialect name cannot be empty"); if (mnemonic.len == 0) @compileError("operation mnemonic cannot be empty"); return dialect_name ++ "." ++ mnemonic;}Source: lib/choir/src/core/dialects/spec.zig:2422
pub fn operationNameFor(comptime OpType: type) []const u8 { if (@hasDecl(OpType, "operation_name")) return OpType.operation_name; if (@hasDecl(OpType, "operation_spec")) return OpType.operation_spec.name; if (nestedOperationSpec(OpType)) |spec| return spec.name; @compileError("operation type must declare operation_name, operation_spec, or a nested operation template");}Source: lib/choir/src/core/dialects/spec.zig:2410
pub fn operationNames(comptime DialectType: type) type { return struct { pub fn name(comptime mnemonic: []const u8) []const u8 { return operationName(DialectType.name, mnemonic); } pub fn state(comptime OpType: type, loc: Location) Operation.State { return Operation.State.init(operationNameFor(OpType), loc); } };}Source: lib/choir/src/core/dialects/spec.zig:2542
pub fn operations(comptime DialectType: type) []const OperationSpec { const decls = comptime std.meta.declarations(DialectType); comptime var count: usize = 0; inline for (decls) |decl_name| { if (comptime std.mem.eql(u8, decl_name, "spec")) continue; const decl_value = @field(DialectType, decl_name); if (comptime isDialectOperationValue(decl_value)) count += 1; } return &operation_spec_storage(DialectType, count).values;}Source: lib/choir/src/core/dialects/spec.zig:71
pub fn optionalOperand(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) ?*IrValue { return op.getOperand(operandIndex(spec, component_name));}Source: lib/choir/src/core/dialects/spec.zig:87
pub fn optionalRegion(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) ?*Region { return op.getRegion(regionIndex(spec, component_name));}Source: lib/choir/src/core/dialects/spec.zig:79
pub fn optionalResult(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) ?*IrValue { return op.getResult(resultIndex(spec, component_name));}Source: lib/choir/src/core/dialects/spec.zig:95
pub fn optionalSuccessor(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) ?*Block { return op.getSuccessor(successorIndex(spec, component_name));}Source: lib/choir/src/core/dialects/spec.zig:83
pub fn region(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) *Region { return op.getRegion(regionIndex(spec, component_name)).?;}Source: lib/choir/src/core/dialects/spec.zig:162
pub fn regionIndex(comptime spec: OperationSpec, comptime component_name: []const u8) usize { return componentIndex(spec.region_names, "region", component_name);}Source: lib/choir/src/core/dialects/spec.zig:75
pub fn result(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) *IrValue { return op.getResult(resultIndex(spec, component_name)).?;}Source: lib/choir/src/core/dialects/spec.zig:158
pub fn resultIndex(comptime spec: OperationSpec, comptime component_name: []const u8) usize { return componentIndex(spec.result_names, "result", component_name);}Source: lib/choir/src/core/dialects/spec.zig:148
pub fn resultSegmentValue(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) ?*IrValue { const values = resultSegmentValues(spec, op, component_name) orelse return null; if (values.len != 1) return null; return &values[0];}Source: lib/choir/src/core/dialects/spec.zig:139
pub fn resultSegmentValues(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) ?[]IrValue { const segment_spec = spec.result_segments orelse @compileError("operation has no result segments: " ++ spec.name); const index = comptime resultIndex(spec, component_name); const bounds = segmentBounds(segment_spec, op, index) orelse return null; if (bounds.offset > op.results.items.len) return null; if (bounds.size > op.results.items.len - bounds.offset) return null; return op.results.items[bounds.offset .. bounds.offset + bounds.size];}Source: lib/choir/src/core/dialects/spec.zig:113
pub fn segmentSizeAttribute(comptime segment_spec: interfaces.OperationSegmentSpec, ctx: *Context, sizes: []const usize) !Attribute { if (sizes.len != segment_spec.segments.len) return error.OperationSegmentSizeCountMismatch; var attrs: [segment_spec.segments.len]Attribute = undefined; for (sizes, 0..) |size, index| { if (!segment_spec.segments[index].allows(size)) return error.OperationSegmentSizeOutOfRange; const value = std.math.cast(i64, size) orelse return error.OperationSegmentSizeOverflow; attrs[index] = try ctx.getI64Attr(value); } return ctx.getArrayAttr(attrs[0..]);}Source: lib/choir/src/core/dialects/spec.zig:99
pub fn setOperandSegmentSizes(comptime spec: OperationSpec, op: *Operation, sizes: []const usize) !void { const segment_spec = spec.operand_segments orelse @compileError("operation has no operand segments: " ++ spec.name); try setSegmentSizes(segment_spec, op, sizes);}Source: lib/choir/src/core/dialects/spec.zig:104
pub fn setResultSegmentSizes(comptime spec: OperationSpec, op: *Operation, sizes: []const usize) !void { const segment_spec = spec.result_segments orelse @compileError("operation has no result segments: " ++ spec.name); try setSegmentSizes(segment_spec, op, sizes);}Source: lib/choir/src/core/dialects/spec.zig:109
pub fn setSegmentSizes(comptime segment_spec: interfaces.OperationSegmentSpec, op: *Operation, sizes: []const usize) !void { try op.setAttr(segment_spec.attribute_name, try segmentSizeAttribute(segment_spec, op.getContext(), sizes));}Source: lib/choir/src/core/dialects/spec.zig:91
pub fn successor(comptime spec: OperationSpec, op: *Operation, comptime component_name: []const u8) *Block { return op.getSuccessor(successorIndex(spec, component_name)).?;}Source: lib/choir/src/core/dialects/spec.zig:166
pub fn successorIndex(comptime spec: OperationSpec, comptime component_name: []const u8) usize { return componentIndex(spec.successor_names, "successor", component_name);}Source: lib/choir/src/core/dialects/spec.zig:2429
pub fn trait(comptime Trait: type) OperationTraitSpec { return .{ .id = Trait.id, .entry = Trait.entry(), .traits = if (@hasDecl(Trait, "traits")) Trait.traits else .{}, };}Source: lib/choir/src/core/dialects/spec.zig:2553
pub fn typeName(name: []const u8) TypeSpec { return .{ .name = name };}Source: lib/choir/src/core/dialects/spec.zig:2557
pub fn typeNames(comptime Names: type) []const TypeSpec { const decls = comptime std.meta.declarations(Names); comptime var count: usize = 0; inline for (decls) |decl_name| { const decl_value = @field(Names, decl_name); if (comptime typeSpecFromValue(decl_value) != null) count += 1; } const values = comptime blk: { var out: [count]TypeSpec = undefined; var index: usize = 0; for (decls) |decl_name| { const decl_value = @field(Names, decl_name); if (typeSpecFromValue(decl_value)) |spec| { out[index] = spec; index += 1; } } break :blk out; }; return &values;}Source: lib/choir/src/core/dialects/root.zig
const spec = @import("spec.zig");pub const registry = @import("registry.zig");pub const DialectLoaderFn = registry.DialectLoaderFn;pub const DialectExtensionFn = registry.DialectExtensionFn;pub const DialectRegistryEntry = registry.DialectRegistryEntry;pub const DialectRegistrySpec = registry.DialectRegistrySpec;pub const OpInterfaceFallbackFn = registry.OpInterfaceFallbackFn;pub const OpInterfaceFallbackEntry = registry.OpInterfaceFallbackEntry;pub const TypeInterfaceFallbackFn = registry.TypeInterfaceFallbackFn;pub const TypeInterfaceFallbackEntry = registry.TypeInterfaceFallbackEntry;pub const DialectLoadState = registry.DialectLoadState;pub const Dialect = registry.Dialect;pub const DialectRegistry = registry.DialectRegistry;pub const OperationTraitSpec = spec.OperationTraitSpec;pub const AttributeStorage = spec.AttributeStorage;pub const AttributeSpec = spec.AttributeSpec;pub const OperationSpec = spec.OperationSpec;pub const operand = spec.operand;pub const optionalOperand = spec.optionalOperand;pub const result = spec.result;pub const optionalResult = spec.optionalResult;pub const region = spec.region;pub const optionalRegion = spec.optionalRegion;pub const successor = spec.successor;pub const optionalSuccessor = spec.optionalSuccessor;pub const setOperandSegmentSizes = spec.setOperandSegmentSizes;pub const setResultSegmentSizes = spec.setResultSegmentSizes;pub const setSegmentSizes = spec.setSegmentSizes;pub const segmentSizeAttribute = spec.segmentSizeAttribute;pub const operandSegmentValues = spec.operandSegmentValues;pub const operandSegmentValue = spec.operandSegmentValue;pub const resultSegmentValues = spec.resultSegmentValues;pub const resultSegmentValue = spec.resultSegmentValue;pub const operandIndex = spec.operandIndex;pub const resultIndex = spec.resultIndex;pub const regionIndex = spec.regionIndex;pub const successorIndex = spec.successorIndex;pub const attribute = spec.attribute;pub const TypeSpec = spec.TypeSpec;pub const DialectSpec = spec.DialectSpec;pub const DialectSpecOptions = spec.DialectSpecOptions;pub const dialectSpec = spec.dialectSpec;pub const operationName = spec.operationName;pub const shape = spec.shape;pub const segments = spec.segments;pub const opSpec = spec.opSpec;pub const typeConstraint = spec.typeConstraint;pub const operationAttribute = spec.operationAttribute;pub const operationDialectAttributeName = spec.operationDialectAttributeName;pub const operationTemplate = spec.operationTemplate;pub const operationNames = spec.operationNames;pub const operationNameFor = spec.operationNameFor;pub const trait = spec.trait;pub const operation = spec.operation;pub const operations = spec.operations;pub const typeName = spec.typeName;pub const typeNames = spec.typeNames;pub const loadDialectSpec = spec.loadDialectSpec;Source: lib/choir/src/core/root.zig:37
pub const dialects = @import("dialects/root.zig");Also reachable as
backends.wasm.emission.module_encoding.common.ir.dialects.
Complete caller list for ir.dialects.dialectSpec
17 direct callers.
lib.choir.src.core.dialects.spec.test_DialectSpec_derives_verifier_and_CSE_interfaces_from_operation_declarations[function] — test source atlib/choir/src/core/dialects/spec.zig:4408in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_DialectSpec_registers_operations,_interfaces,_traits,_types,_and_dialect_interfaces[function] — test source atlib/choir/src/core/dialects/spec.zig:4260in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_loadDialectSpec_registers_dialect_attributes_before_context_activation[function] — test source atlib/choir/src/core/dialects/spec.zig:2737in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_carries_verifier_helper_metadata[function] — test source atlib/choir/src/core/dialects/spec.zig:4027in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_leaf_mixin_derives_construction_from_one_spec[function] — test source atlib/choir/src/core/dialects/spec.zig:3541in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_leaf_mixin_derives_optional_and_segment_accessors[function] — test source atlib/choir/src/core/dialects/spec.zig:3666in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_leaf_mixin_derives_typed_attribute_accessors[function] — test source atlib/choir/src/core/dialects/spec.zig:3604in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_mixin_derives_non-leaf_construction_from_one_spec[function] — test source atlib/choir/src/core/dialects/spec.zig:3791in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_terminator_mixin_derives_construction_from_one_spec[function] — test source atlib/choir/src/core/dialects/spec.zig:3857in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_generates_fixed-result_leaf_operation_wrappers[function] — test source atlib/choir/src/core/dialects/spec.zig:3961in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_generates_unary_attr_and_no-result_wrappers[function] — test source atlib/choir/src/core/dialects/spec.zig:4197in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_nested_definitions_register_custom_wrappers[function] — test source atlib/choir/src/core/dialects/spec.zig:3468in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operation_descriptor_DSL_builds_dialect_operation_sets[function] — test source atlib/choir/src/core/dialects/spec.zig:3414in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operation_descriptor_DSL_exports_compact_operation_metadata[function] — test source atlib/choir/src/core/dialects/spec.zig:3097in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operation_descriptor_required_attrs_are_inherent_attrs[function] — test source atlib/choir/src/core/dialects/spec.zig:3261in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operation_segment_helpers_set_attributes_and_read_named_segments[function] — test source atlib/choir/src/core/dialects/spec.zig:3201in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operations_derives_operation_specs_from_descriptors[function] — test source atlib/choir/src/core/dialects/spec.zig:3077in nearest public ownerlib.choir.src.core.dialects.spec
Complete caller list for ir.dialects.loadDialectSpec
21 direct callers.
lib.choir.src.core.dialects.spec.test_DialectSpec_derives_verifier_and_CSE_interfaces_from_operation_declarations[function] — test source atlib/choir/src/core/dialects/spec.zig:4408in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_DialectSpec_registers_operations,_interfaces,_traits,_types,_and_dialect_interfaces[function] — test source atlib/choir/src/core/dialects/spec.zig:4260in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_dialect_operation_batch_merges_duplicate_traits_into_one_stable_entry[function] — test source atlib/choir/src/core/dialects/spec.zig:2875in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_direct_dialect_operation_batch_cleans_every_allocation_failure[function] — test source atlib/choir/src/core/dialects/spec.zig:2847in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_direct_dialect_spec_loading_cleans_every_allocation_failure[function] — test source atlib/choir/src/core/dialects/spec.zig:2815in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_direct_dialect_type_batch_cleans_every_allocation_failure[function] — test source atlib/choir/src/core/dialects/spec.zig:2827in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_loadDialectSpec_is_read-only_after_representative_operation_registration[function] — test source atlib/choir/src/core/dialects/spec.zig:2765in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_loadDialectSpec_marks_direct_spec_loads_as_loaded_dialects[function] — test source atlib/choir/src/core/dialects/spec.zig:2788in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_loadDialectSpec_registers_dialect_attributes_before_context_activation[function] — test source atlib/choir/src/core/dialects/spec.zig:2737in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_carries_verifier_helper_metadata[function] — test source atlib/choir/src/core/dialects/spec.zig:4027in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_leaf_mixin_derives_construction_from_one_spec[function] — test source atlib/choir/src/core/dialects/spec.zig:3541in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_leaf_mixin_derives_optional_and_segment_accessors[function] — test source atlib/choir/src/core/dialects/spec.zig:3666in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_leaf_mixin_derives_typed_attribute_accessors[function] — test source atlib/choir/src/core/dialects/spec.zig:3604in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_mixin_derives_non-leaf_construction_from_one_spec[function] — test source atlib/choir/src/core/dialects/spec.zig:3791in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_explicit_terminator_mixin_derives_construction_from_one_spec[function] — test source atlib/choir/src/core/dialects/spec.zig:3857in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_generates_fixed-result_leaf_operation_wrappers[function] — test source atlib/choir/src/core/dialects/spec.zig:3961in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_generates_unary_attr_and_no-result_wrappers[function] — test source atlib/choir/src/core/dialects/spec.zig:4197in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operationTemplate_nested_definitions_register_custom_wrappers[function] — test source atlib/choir/src/core/dialects/spec.zig:3468in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operation_descriptor_DSL_builds_dialect_operation_sets[function] — test source atlib/choir/src/core/dialects/spec.zig:3414in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operation_descriptor_required_attrs_are_inherent_attrs[function] — test source atlib/choir/src/core/dialects/spec.zig:3261in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.test_operation_segment_helpers_set_attributes_and_read_named_segments[function] — test source atlib/choir/src/core/dialects/spec.zig:3201in nearest public ownerlib.choir.src.core.dialects.spec
Complete caller list for ir.dialects.operationName
10 direct callers.
tiny.choir.ir.dialects.operationNames[function] atlib/choir/src/core/dialects/spec.zig:2410lib.choir.src.core.dialects.spec.operationTemplate.binaryFixedResultImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:1975in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.operationTemplate.binarySameTypeImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:1908in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.operationTemplate.selectSameTypeImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:2302in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.operationTemplate.ternarySameTypeImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:2227in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.operationTemplate.unaryExplicitTypeImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:2142in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.operationTemplate.unaryFixedResultImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:2070in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.operationTemplate.unaryNoResultImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:2201in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.operationTemplate.unarySameTypeImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:2011in nearest public ownerlib.choir.src.core.dialects.speclib.choir.src.core.dialects.spec.operationTemplate.unarySameTypeStringAttrImpl[function] — private source atlib/choir/src/core/dialects/spec.zig:2102in nearest public ownerlib.choir.src.core.dialects.spec
Audit
| Definitions | 40 |
|---|---|
| Public names | 80 |
| Members | 41 |
| Version | 26.7.0 |
| Revision | daab053ee433 |