using ImplType = AttributeStorage;
using ValueType = void;
- Attribute() : impl(nullptr) {}
+ constexpr Attribute() : impl(nullptr) {}
/* implicit */ Attribute(const ImplType *impl)
: impl(const_cast<ImplType *>(impl)) {}
using ImplType = TypeStorage;
- Type() : impl(nullptr) {}
+ constexpr Type() : impl(nullptr) {}
/* implicit */ Type(const ImplType *impl)
: impl(const_cast<ImplType *>(impl)) {}
using ImplType = llvm::PointerIntPair<void *, 2, Kind, ImplTypeTraits>;
public:
- Value(std::nullptr_t) : ownerAndKind() {}
+ constexpr Value(std::nullptr_t) : ownerAndKind() {}
Value(ImplType ownerAndKind = {}) : ownerAndKind(ownerAndKind) {}
Value(const Value &) = default;
Value &operator=(const Value &) = default;
OpBuilder *builder) {
if (auto intType = type.dyn_cast<IntegerType>()) {
unsigned width = intType.getWidth();
- Attribute val;
if (width == 1)
return builder->create<spirv::ConstantOp>(loc, type,
builder->getBoolAttr(false));
StringRef indexAttrName = TupleGetOp::getIndexAttrName();
Type indexType = parser.getBuilder().getIndexType();
TupleType tupleType;
- VectorType resultVectorType;
if (parser.parseOperand(operandInfo) || parser.parseComma() ||
parser.parseAttribute(indexAttr, indexType, indexAttrName,
result.attributes) ||