# 'annotation' Dialect Annotation dialects for mark operations to define some extra attrs for a certain op: ```mlir // Mark extra attrs annotation.mark %a { attr-dict } : f64 ``` ## Operations ### `annotation.mark` (annotation::MarkOp) _Annotate an IR value with key-value attribute pairs_ Syntax: ```mlir operation ::= `annotation.mark` $src attr-dict (`keys` `=` $keys^)? (`values` `=` `[`$values^`:`type($values) `]`)? `:`type($src) ``` The `annotation.mark` operation can be used to annotated an IR value with a set of key-value attributes pairs. The value can be both static (i.e. an attribute) or dynamic (a.k.a. an IR value). Example: ```mlir annotation.mark %target keys = ["key"] values = [%val] annotation.mark %target {key : val} ``` Traits: `AlwaysSpeculatableImplTrait` Interfaces: `ConditionallySpeculatable`, `MemoryEffectOpInterface (MemoryEffectOpInterface)`, `NoMemoryEffect (MemoryEffectOpInterface)` Effects: `MemoryEffects::Effect{MemoryEffects::Write on ::mlir::SideEffects::DefaultResource}`, `MemoryEffects::Effect{}` #### Attributes
| Attribute | MLIR Type | Description |
|---|---|---|
keys | ::mlir::ArrayAttr | string array attribute |