MLIR 22.0.0git
StructBuilder.cpp
Go to the documentation of this file.
1//===- StructBuilder.cpp - Helper for building LLVM structs --------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
12#include "mlir/IR/Builders.h"
13
14using namespace mlir;
15
16//===----------------------------------------------------------------------===//
17// StructBuilder implementation
18//===----------------------------------------------------------------------===//
19
21 assert(value != nullptr && "value cannot be null");
22 assert(LLVM::isCompatibleType(structType) && "expected llvm type");
23}
24
26 unsigned pos) const {
27 return LLVM::ExtractValueOp::create(builder, loc, value, pos);
28}
30void StructBuilder::setPtr(OpBuilder &builder, Location loc, unsigned pos,
31 Value ptr) {
32 value = LLVM::InsertValueOp::create(builder, loc, value, ptr, pos);
33}
This class defines the main interface for locations in MLIR and acts as a non-nullable wrapper around...
Definition Location.h:76
This class helps build Operations.
Definition Builders.h:207
void setPtr(OpBuilder &builder, Location loc, unsigned pos, Value ptr)
Builds IR to set a value in the struct at position pos.
StructBuilder(Value v)
Construct a helper for the given value.
Value extractPtr(OpBuilder &builder, Location loc, unsigned pos) const
Builds IR to extract a value from the struct at position pos.
This class represents an instance of an SSA value in the MLIR system, representing a computable value...
Definition Value.h:96
bool isCompatibleType(Type type)
Returns true if the given type is compatible with the LLVM dialect.
Include the generated interface declarations.
Type getType(OpFoldResult ofr)
Returns the int type of the integer in ofr.
Definition Utils.cpp:304