|
static unsigned | clang::interp::callArgSize (const InterpState &S, const CallExpr *C) |
|
template<typename T > |
static T | clang::interp::getParam (const InterpFrame *Frame, unsigned Index) |
|
static APSInt | clang::interp::getAPSIntParam (const InterpFrame *Frame, unsigned Index) |
|
static PrimType | clang::interp::getIntPrimType (const InterpState &S) |
|
static PrimType | clang::interp::getLongPrimType (const InterpState &S) |
|
static APSInt | clang::interp::peekToAPSInt (InterpStack &Stk, PrimType T, size_t Offset=0) |
| Peek an integer value from the stack into an APSInt.
|
|
static void | clang::interp::pushInteger (InterpState &S, const APSInt &Val, QualType QT) |
| Pushes Val on the stack as the type given by QT .
|
|
template<typename T > |
static void | clang::interp::pushInteger (InterpState &S, T Val, QualType QT) |
|
static void | clang::interp::assignInteger (Pointer &Dest, PrimType ValueT, const APSInt &Value) |
|
static bool | clang::interp::retPrimValue (InterpState &S, CodePtr OpPC, std::optional< PrimType > &T) |
|
static void | clang::interp::diagnoseNonConstexprBuiltin (InterpState &S, CodePtr OpPC, unsigned ID) |
|
static bool | clang::interp::interp__builtin_is_constant_evaluated (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_strcmp (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_strlen (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_nan (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, bool Signaling) |
|
static bool | clang::interp::interp__builtin_inf (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F) |
|
static bool | clang::interp::interp__builtin_copysign (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F) |
|
static bool | clang::interp::interp__builtin_fmin (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, bool IsNumBuiltin) |
|
static bool | clang::interp::interp__builtin_fmax (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, bool IsNumBuiltin) |
|
static bool | clang::interp::interp__builtin_isnan (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, const CallExpr *Call) |
| Defined as __builtin_isnan(...), to accommodate the fact that it can take a float, double, long double, etc.
|
|
static bool | clang::interp::interp__builtin_issignaling (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_isinf (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, bool CheckSign, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_isfinite (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_isnormal (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_issubnormal (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_iszero (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_signbit (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, const CallExpr *Call) |
|
static bool | clang::interp::interp_floating_comparison (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *F, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_isfpclass (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| First parameter to __builtin_isfpclass is the floating value, the second one is an integral value.
|
|
static bool | clang::interp::interp__builtin_fpclassify (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| Five int values followed by one floating value.
|
|
static bool | clang::interp::interp__builtin_fabs (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func) |
|
static bool | clang::interp::interp__builtin_abs (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_popcount (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_parity (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_clrsb (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_bitreverse (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_classify_type (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_expect (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_rotate (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call, bool Right) |
| rotateleft(value, amount)
|
|
static bool | clang::interp::interp__builtin_ffs (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_addressof (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_move (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_eh_return_data_regno (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::noopPointer (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| Just takes the first Argument to the call and puts it on the stack.
|
|
static bool | clang::interp::interp__builtin_overflowop (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_carryop (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| Three integral values followed by a pointer (lhs, rhs, carry, carryOut).
|
|
static bool | clang::interp::interp__builtin_clz (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_ctz (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_bswap (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_atomic_lock_free (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| bool __atomic_always_lock_free(size_t, void const volatile*) bool __atomic_is_lock_free(size_t, void const volatile*) bool __c11_atomic_is_lock_free(size_t)
|
|
static bool | clang::interp::interp__builtin_complex (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| __builtin_complex(Float A, float B);
|
|
static bool | clang::interp::interp__builtin_is_aligned_up_down (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| __builtin_is_aligned() __builtin_align_up() __builtin_align_down() The first parameter is either an integer or a pointer.
|
|
static bool | clang::interp::interp__builtin_assume_aligned (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| __builtin_assume_aligned(Ptr, Alignment[, ExtraOffset])
|
|
static bool | clang::interp::interp__builtin_ia32_bextr (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_ia32_bzhi (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_ia32_lzcnt (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_ia32_tzcnt (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_ia32_pdep (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_ia32_pext (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_ia32_addcarry_subborrow (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_os_log_format_buffer_size (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_ptrauth_string_discriminator (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_constant_p (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_operator_new (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_operator_delete (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_arithmetic_fence (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_vector_reduce (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::interp__builtin_elementwise_popcount (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
| Can be called with an integer or vector as the first and only parameter.
|
|
static bool | clang::interp::interp__builtin_memcpy (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
static bool | clang::interp::isOneByteCharacterType (QualType T) |
| Determine if T is a character type for which we guarantee that sizeof(T) == 1.
|
|
static bool | clang::interp::interp__builtin_memcmp (InterpState &S, CodePtr OpPC, const InterpFrame *Frame, const Function *Func, const CallExpr *Call) |
|
bool | clang::interp::InterpretBuiltin (InterpState &S, CodePtr OpPC, const Function *F, const CallExpr *Call, uint32_t BuiltinID) |
| Interpret a builtin function.
|
|
bool | clang::interp::InterpretOffsetOf (InterpState &S, CodePtr OpPC, const OffsetOfExpr *E, llvm::ArrayRef< int64_t > ArrayIndices, int64_t &Result) |
| Interpret an offsetof operation.
|
|
bool | clang::interp::SetThreeWayComparisonField (InterpState &S, CodePtr OpPC, const Pointer &Ptr, const APSInt &IntValue) |
| Sets the given integral value to the pointer, which is of a std::{weak,partial,strong}_ordering type.
|
|
static bool | clang::interp::copyComposite (InterpState &S, CodePtr OpPC, const Pointer &Src, Pointer &Dest, bool Activate) |
|
static bool | clang::interp::copyRecord (InterpState &S, CodePtr OpPC, const Pointer &Src, Pointer &Dest, bool Activate=false) |
|
bool | clang::interp::DoMemcpy (InterpState &S, CodePtr OpPC, const Pointer &Src, Pointer &Dest) |
| Copy the contents of Src into Dest.
|
|