Просмотр исходного кода

Rename `CARBON_SEM_IR_INST_KIND_*_TYPE` macros to `CARBON_SEM_IR_INST_KIND_TYPE_*` for consistency and namespacing. (#3920)

As requested in #3916.
Richard Smith 2 лет назад
Родитель
Сommit
02827ca26a

+ 2 - 2
toolchain/check/context.cpp

@@ -940,8 +940,8 @@ class TypeCompleter {
   auto BuildValueRepr(SemIR::TypeId type_id, SemIR::Inst inst) const
       -> SemIR::ValueRepr {
     CARBON_KIND_SWITCH(inst) {
-#define CARBON_SEM_IR_INST_KIND_TYPE(...)
-#define CARBON_SEM_IR_INST_KIND_MAYBE_TYPE(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_ALWAYS(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_MAYBE(...)
 #define CARBON_SEM_IR_INST_KIND(Name) case SemIR::Name::Kind:
 #include "toolchain/sem_ir/inst_kind.def"
       CARBON_FATAL() << "Type refers to non-type inst " << inst;

+ 2 - 2
toolchain/lower/constant.cpp

@@ -84,8 +84,8 @@ class ConstantContext {
 
 // For constants that are always of type `type`, produce the trivial runtime
 // representation of type `type`.
-#define CARBON_SEM_IR_INST_KIND_NOT_TYPE(...)
-#define CARBON_SEM_IR_INST_KIND_MAYBE_TYPE(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_NEVER(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_MAYBE(...)
 #define CARBON_SEM_IR_INST_KIND_CONSTANT_SYMBOLIC_ONLY(...)
 #define CARBON_SEM_IR_INST_KIND(Name)                                      \
   static auto Emit##Name##AsConstant(                                      \

+ 2 - 2
toolchain/lower/file_context.cpp

@@ -398,8 +398,8 @@ auto FileContext::BuildType(SemIR::InstId inst_id) -> llvm::Type* {
       return llvm::StructType::get(*llvm_context_);
     }
 
-#define CARBON_SEM_IR_INST_KIND_TYPE(...)
-#define CARBON_SEM_IR_INST_KIND_MAYBE_TYPE(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_ALWAYS(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_MAYBE(...)
 #define CARBON_SEM_IR_INST_KIND(Name) case SemIR::Name::Kind:
 #include "toolchain/sem_ir/inst_kind.def"
       CARBON_FATAL() << "Cannot use inst as type: " << inst_id << " "

+ 2 - 2
toolchain/lower/handle_type.cpp

@@ -9,8 +9,8 @@ namespace Carbon::Lower {
 
 // For instructions that are always of type `type`, produce the trivial runtime
 // representation of type `type`.
-#define CARBON_SEM_IR_INST_KIND_NOT_TYPE(...)
-#define CARBON_SEM_IR_INST_KIND_MAYBE_TYPE(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_NEVER(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_MAYBE(...)
 #define CARBON_SEM_IR_INST_KIND_CONSTANT_ALWAYS(...)
 #define CARBON_SEM_IR_INST_KIND(Name)                                \
   auto Handle##Name(FunctionContext& context, SemIR::InstId inst_id, \

+ 2 - 2
toolchain/sem_ir/file.cpp

@@ -192,8 +192,8 @@ static auto GetTypePrecedence(InstKind kind) -> int {
     case PointerType::Kind:
       return -2;
 
-#define CARBON_SEM_IR_INST_KIND_TYPE(...)
-#define CARBON_SEM_IR_INST_KIND_MAYBE_TYPE(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_ALWAYS(...)
+#define CARBON_SEM_IR_INST_KIND_TYPE_MAYBE(...)
 #define CARBON_SEM_IR_INST_KIND(Name) case SemIR::Name::Kind:
 #include "toolchain/sem_ir/inst_kind.def"
       CARBON_FATAL() << "GetTypePrecedence for non-type inst kind " << kind;

+ 89 - 87
toolchain/sem_ir/inst_kind.def

@@ -15,13 +15,13 @@
 // the following sets, which by default expand to their argument:
 //
 // Whether the instruction can define a type:
-// - CARBON_SEM_IR_INST_KIND_TYPE(...)
+// - CARBON_SEM_IR_INST_KIND_TYPE_ALWAYS(...)
 //   Invoked for each instruction that is always of type `type`, and might
 //   define a type constant.
-// - CARBON_SEM_IR_INST_KIND_MAYBE_TYPE(...)
+// - CARBON_SEM_IR_INST_KIND_TYPE_MAYBE(...)
 //   Invoked for each instruction that is sometimes of type `type`, and might
 //   define a type constant.
-// - CARBON_SEM_IR_INST_KIND_NOT_TYPE(...)
+// - CARBON_SEM_IR_INST_KIND_TYPE_NEVER(...)
 //   Invoked for each instruction that can never define a type constant. Note
 //   that such instructions can still have type `type`, but are not the
 //   canonical definition of any type.
@@ -42,14 +42,14 @@
 #error "Must define the x-macro to use this file."
 #endif
 
-#ifndef CARBON_SEM_IR_INST_KIND_NOT_TYPE
-#define CARBON_SEM_IR_INST_KIND_NOT_TYPE(...) __VA_ARGS__
+#ifndef CARBON_SEM_IR_INST_KIND_TYPE_NEVER
+#define CARBON_SEM_IR_INST_KIND_TYPE_NEVER(...) __VA_ARGS__
 #endif
-#ifndef CARBON_SEM_IR_INST_KIND_MAYBE_TYPE
-#define CARBON_SEM_IR_INST_KIND_MAYBE_TYPE(...) __VA_ARGS__
+#ifndef CARBON_SEM_IR_INST_KIND_TYPE_MAYBE
+#define CARBON_SEM_IR_INST_KIND_TYPE_MAYBE(...) __VA_ARGS__
 #endif
-#ifndef CARBON_SEM_IR_INST_KIND_TYPE
-#define CARBON_SEM_IR_INST_KIND_TYPE(...) __VA_ARGS__
+#ifndef CARBON_SEM_IR_INST_KIND_TYPE_ALWAYS
+#define CARBON_SEM_IR_INST_KIND_TYPE_ALWAYS(...) __VA_ARGS__
 #endif
 
 #ifndef CARBON_SEM_IR_INST_KIND_CONSTANT_NEVER
@@ -71,87 +71,89 @@
 
 // For each instruction kind declared here there is a matching definition in
 // `typed_insts.h`.
-CARBON_SEM_IR_INST_KIND_IMPL(AdaptDecl, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(AddrOf, NOT_TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(AddrPattern, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ArrayIndex, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ArrayInit, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ArrayType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(AsCompatible, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(Assign, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(AssociatedConstantDecl, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(AssociatedEntity, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(AssociatedEntityType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(BaseDecl, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(BindAlias, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(BindName, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(BindSymbolicName, MAYBE_TYPE,
+CARBON_SEM_IR_INST_KIND_IMPL(AdaptDecl, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(AddrOf, TYPE_NEVER, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(AddrPattern, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ArrayIndex, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ArrayInit, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ArrayType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(AsCompatible, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(Assign, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(AssociatedConstantDecl, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(AssociatedEntity, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(AssociatedEntityType, TYPE_ALWAYS,
+                             CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(BaseDecl, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(BindAlias, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(BindName, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(BindSymbolicName, TYPE_MAYBE,
                              CONSTANT_SYMBOLIC_ONLY)
-CARBON_SEM_IR_INST_KIND_IMPL(BindValue, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(BlockArg, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(BoolLiteral, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(BoundMethod, NOT_TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(Branch, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(BranchIf, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(BranchWithArg, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(Builtin, TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(Call, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ClassDecl, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ClassElementAccess, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ClassInit, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ClassType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(ConstType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(Converted, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(Deref, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(FacetTypeAccess, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(FieldDecl, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(FloatLiteral, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(FloatType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(FunctionDecl, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(ImplDecl, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ImportRefUnloaded, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ImportRefLoaded, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ImportRefUsed, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(InitializeFrom, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(InterfaceDecl, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(InterfaceType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(InterfaceWitness, NOT_TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(InterfaceWitnessAccess, MAYBE_TYPE,
+CARBON_SEM_IR_INST_KIND_IMPL(BindValue, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(BlockArg, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(BoolLiteral, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(BoundMethod, TYPE_NEVER, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(Branch, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(BranchIf, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(BranchWithArg, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(Builtin, TYPE_ALWAYS, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(Call, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ClassDecl, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ClassElementAccess, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ClassInit, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ClassType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(ConstType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(Converted, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(Deref, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(FacetTypeAccess, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(FieldDecl, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(FloatLiteral, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(FloatType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(FunctionDecl, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(ImplDecl, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ImportRefUnloaded, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ImportRefLoaded, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ImportRefUsed, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(InitializeFrom, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(InterfaceDecl, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(InterfaceType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(InterfaceWitness, TYPE_NEVER, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(InterfaceWitnessAccess, TYPE_MAYBE,
                              CONSTANT_SYMBOLIC_ONLY)
-CARBON_SEM_IR_INST_KIND_IMPL(IntLiteral, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(IntType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(NameRef, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(Namespace, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(Param, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(PointerType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(RealLiteral, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(ReturnExpr, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(Return, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(SpliceBlock, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(StringLiteral, NOT_TYPE, CONSTANT_ALWAYS)
-CARBON_SEM_IR_INST_KIND_IMPL(StructAccess, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(StructInit, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(StructLiteral, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(StructType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(StructTypeField, NOT_TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(StructValue, NOT_TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(TemporaryStorage, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(Temporary, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(TupleAccess, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(TupleIndex, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(TupleInit, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(TupleLiteral, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(TupleType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(TupleValue, NOT_TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(UnaryOperatorNot, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(UnboundElementType, TYPE, CONSTANT_CONDITIONAL)
-CARBON_SEM_IR_INST_KIND_IMPL(ValueAsRef, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(ValueOfInitializer, NOT_TYPE, CONSTANT_NEVER)
-CARBON_SEM_IR_INST_KIND_IMPL(VarStorage, NOT_TYPE, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(IntLiteral, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(IntType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(NameRef, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(Namespace, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(Param, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(PointerType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(RealLiteral, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(ReturnExpr, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(Return, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(SpliceBlock, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(StringLiteral, TYPE_NEVER, CONSTANT_ALWAYS)
+CARBON_SEM_IR_INST_KIND_IMPL(StructAccess, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(StructInit, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(StructLiteral, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(StructType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(StructTypeField, TYPE_NEVER, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(StructValue, TYPE_NEVER, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(TemporaryStorage, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(Temporary, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(TupleAccess, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(TupleIndex, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(TupleInit, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(TupleLiteral, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(TupleType, TYPE_ALWAYS, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(TupleValue, TYPE_NEVER, CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(UnaryOperatorNot, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(UnboundElementType, TYPE_ALWAYS,
+                             CONSTANT_CONDITIONAL)
+CARBON_SEM_IR_INST_KIND_IMPL(ValueAsRef, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(ValueOfInitializer, TYPE_NEVER, CONSTANT_NEVER)
+CARBON_SEM_IR_INST_KIND_IMPL(VarStorage, TYPE_NEVER, CONSTANT_NEVER)
 
-#undef CARBON_SEM_IR_INST_KIND_TYPE
-#undef CARBON_SEM_IR_INST_KIND_MAYBE_TYPE
-#undef CARBON_SEM_IR_INST_KIND_NOT_TYPE
+#undef CARBON_SEM_IR_INST_KIND_TYPE_ALWAYS
+#undef CARBON_SEM_IR_INST_KIND_TYPE_MAYBE
+#undef CARBON_SEM_IR_INST_KIND_TYPE_NEVER
 
 #undef CARBON_SEM_IR_INST_KIND_CONSTANT_NEVER
 #undef CARBON_SEM_IR_INST_KIND_CONSTANT_SYMBOLIC_ONLY