pub struct ConstantOperation<'c> { /* private fields */ }
Expand description
A mlir.constant
operation. Defines a constant of LLVM type..
Unlike LLVM IR, MLIR does not have first-class constant values. Therefore,
all constants must be created as SSA values before being used in other
operations. llvm.mlir.constant
creates such values for scalars and
vectors. It has a mandatory value
attribute, which may be an integer,
floating point attribute; dense or sparse attribute containing integers or
floats. The type of the attribute is one of the corresponding MLIR builtin
types. It may be omitted for i64
and f64
types that are implied. The
operation produces a new SSA value of the specified LLVM IR dialect type.
The type of that value must correspond to the attribute type converted to
LLVM IR.
Examples:
// Integer constant, internal i32 is mandatory
%0 = llvm.mlir.constant(42 : i32) : i32
// It's okay to omit i64.
%1 = llvm.mlir.constant(42) : i64
// Floating point constant.
%2 = llvm.mlir.constant(42.0 : f32) : f32
// Splat dense vector constant.
%3 = llvm.mlir.constant(dense<1.0> : vector<4xf32>) : vector<4xf32>
Implementations§
source§impl<'c> ConstantOperation<'c>
impl<'c> ConstantOperation<'c>
sourcepub fn as_operation(&self) -> &Operation<'c>
pub fn as_operation(&self) -> &Operation<'c>
Returns a generic operation.
sourcepub fn builder(
context: &'c Context,
location: Location<'c>
) -> ConstantOperationBuilder<'c, Unset, Unset>
pub fn builder( context: &'c Context, location: Location<'c> ) -> ConstantOperationBuilder<'c, Unset, Unset>
Creates a builder.