| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- // Exceptions. See /LICENSE for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- // This is an X-macro header. It does not use `#include` guards, and instead is
- // designed to be `#include`ed after the x-macro is defined in order for its
- // inclusion to expand to the desired output. Macro definitions are cleaned up
- // at the end of this file.
- //
- // Supported x-macro is:
- // - CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(Name)
- // Defines a builtin function type.
- #if !defined(CARBON_SEM_IR_BUILTIN_FUNCTION_KIND)
- #error \
- "Must define CARBON_SEM_IR_BUILTIN_FUNCTION_KIND x-macro to use this file."
- #define CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(Name)
- #endif
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(None)
- // A no-op function definition; calls should be elided when lowering.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(NoOp)
- // A no-op factory function.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(MakeUninitialized)
- // A primitive copy for types whose value and initializing representation are
- // the same.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(PrimitiveCopy)
- // Temporary builtins for primitive IO.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(PrintChar)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(PrintInt)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(ReadChar)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(StringAt)
- // Type factories.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(CharLiteralMakeType)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntLiteralMakeType)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatLiteralMakeType)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntMakeTypeSigned)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntMakeTypeUnsigned)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatMakeType)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(BoolMakeType)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(MaybeUnformedMakeType)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FormMakeType)
- // Character conversion.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(CharConvertChecked)
- // Integer conversion.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntConvert)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntConvertChar)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntConvertChecked)
- // Integer arithmetic.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSNegate)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSAdd)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSSub)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSMul)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSDiv)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSMod)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUNegate)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUAdd)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUSub)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUMul)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUDiv)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUMod)
- // Integer bitwise.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntComplement)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntAnd)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntOr)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntXor)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntLeftShift)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntRightShift)
- // Integer comparison.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntEq)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntNeq)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntLess)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntLessEq)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntGreater)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntGreaterEq)
- // Integer compound assignment.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSAddAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSSubAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSMulAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSDivAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntSModAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUAddAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUSubAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUMulAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUDivAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntUModAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntAndAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntOrAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntXorAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntLeftShiftAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(IntRightShiftAssign)
- // Float arithmetic.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatNegate)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatAdd)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatSub)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatMul)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatDiv)
- // Float compound assignment.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatAddAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatSubAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatMulAssign)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatDivAssign)
- // Float conversion.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatConvertChecked)
- // Float comparison.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatEq)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatNeq)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatLess)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatLessEq)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatGreater)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(FloatGreaterEq)
- // Bool comparison.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(BoolEq)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(BoolNeq)
- // Pointers.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(PointerMakeNull)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(PointerIsNull)
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(PointerUnsafeConvert)
- // Facet type combination.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(TypeAnd)
- // C++ interop builtins.
- CARBON_SEM_IR_BUILTIN_FUNCTION_KIND(CppStdInitializerListMake)
- #undef CARBON_SEM_IR_BUILTIN_FUNCTION_KIND
|