clang
6.0.0
|
#include "CGCXXABI.h"
#include "CGObjCRuntime.h"
#include "CGOpenCLRuntime.h"
#include "CodeGenFunction.h"
#include "CodeGenModule.h"
#include "ConstantEmitter.h"
#include "TargetInfo.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/Analysis/Analyses/OSLog.h"
#include "clang/Basic/TargetBuiltins.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/CodeGen/CGFunctionInfo.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/IR/CallSite.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/Support/ConvertUTF.h"
#include "llvm/Support/ScopedPrinter.h"
#include "llvm/Support/TargetParser.h"
#include <sstream>
#include "llvm/Support/X86TargetParser.def"
Go to the source code of this file.
Macros | |
#define | NEONMAP0(NameBase) { #NameBase, NEON::BI__builtin_neon_ ## NameBase, 0, 0, 0 } |
#define | NEONMAP1(NameBase, LLVMIntrinsic, TypeModifier) |
#define | NEONMAP2(NameBase, LLVMIntrinsic, AltLLVMIntrinsic, TypeModifier) |
#define | X86_VENDOR(ENUM, STRING) .Case(STRING, {0u, static_cast<unsigned>(llvm::X86::ENUM)}) |
#define | X86_CPU_TYPE_COMPAT_WITH_ALIAS(ARCHNAME, ENUM, STR, ALIAS) .Cases(STR, ALIAS, {1u, static_cast<unsigned>(llvm::X86::ENUM)}) |
#define | X86_CPU_TYPE_COMPAT(ARCHNAME, ENUM, STR) .Case(STR, {1u, static_cast<unsigned>(llvm::X86::ENUM)}) |
#define | X86_CPU_SUBTYPE_COMPAT(ARCHNAME, ENUM, STR) .Case(STR, {2u, static_cast<unsigned>(llvm::X86::ENUM)}) |
#define | X86_FEATURE_COMPAT(VAL, ENUM, STR) .Case(STR, VAL) |
#define | INTRINSIC_X86_XSAVE_ID(NAME) |
#define | INTRINSIC_WITH_CC(NAME) |
#define | MMA_VARIANTS(type) |
Enumerations | |
enum | MSVCIntrin |
enum | { AddRetType = (1 << 0), Add1ArgType = (1 << 1), Add2ArgTypes = (1 << 2), VectorizeRetType = (1 << 3), VectorizeArgTypes = (1 << 4), InventFloatType = (1 << 5), UnsignedAlts = (1 << 6), Use64BitVectors = (1 << 7), Use128BitVectors = (1 << 8), Vectorize1ArgType = Add1ArgType | VectorizeArgTypes, VectorRet = AddRetType | VectorizeRetType, VectorRetGetArgs01, FpCmpzModifiers } |
Functions | |
static int64_t | clamp (int64_t Value, int64_t Low, int64_t High) |
static Value * | EmitToInt (CodeGenFunction &CGF, llvm::Value *V, QualType T, llvm::IntegerType *IntType) |
Emit the conversions required to turn the given value into an integer of the given size. More... | |
static Value * | EmitFromInt (CodeGenFunction &CGF, llvm::Value *V, QualType T, llvm::Type *ResultType) |
static Value * | MakeBinaryAtomicValue (CodeGenFunction &CGF, llvm::AtomicRMWInst::BinOp Kind, const CallExpr *E) |
Utility to insert an atomic instruction based on Instrinsic::ID and the expression node. More... | |
static Value * | EmitNontemporalStore (CodeGenFunction &CGF, const CallExpr *E) |
static Value * | EmitNontemporalLoad (CodeGenFunction &CGF, const CallExpr *E) |
static RValue | EmitBinaryAtomic (CodeGenFunction &CGF, llvm::AtomicRMWInst::BinOp Kind, const CallExpr *E) |
static RValue | EmitBinaryAtomicPost (CodeGenFunction &CGF, llvm::AtomicRMWInst::BinOp Kind, const CallExpr *E, Instruction::BinaryOps Op, bool Invert=false) |
Utility to insert an atomic instruction based Instrinsic::ID and the expression node, where the return value is the result of the operation. More... | |
static Value * | MakeAtomicCmpXchgValue (CodeGenFunction &CGF, const CallExpr *E, bool ReturnBool) |
Utility to insert an atomic cmpxchg instruction. More... | |
static Value * | emitUnaryBuiltin (CodeGenFunction &CGF, const CallExpr *E, unsigned IntrinsicID) |
static Value * | emitBinaryBuiltin (CodeGenFunction &CGF, const CallExpr *E, unsigned IntrinsicID) |
static Value * | emitTernaryBuiltin (CodeGenFunction &CGF, const CallExpr *E, unsigned IntrinsicID) |
static Value * | emitFPIntBuiltin (CodeGenFunction &CGF, const CallExpr *E, unsigned IntrinsicID) |
static Value * | EmitFAbs (CodeGenFunction &CGF, Value *V) |
EmitFAbs - Emit a call to .fabs(). More... | |
static Value * | EmitSignBit (CodeGenFunction &CGF, Value *V) |
Emit the computation of the sign bit for a floating point value. More... | |
static RValue | emitLibraryCall (CodeGenFunction &CGF, const FunctionDecl *FD, const CallExpr *E, llvm::Constant *calleeValue) |
static llvm::Value * | EmitOverflowIntrinsic (CodeGenFunction &CGF, const llvm::Intrinsic::ID IntrinsicID, llvm::Value *X, llvm::Value *Y, llvm::Value *&Carry) |
Emit a call to llvm. More... | |
static Value * | emitRangedBuiltin (CodeGenFunction &CGF, unsigned IntrinsicID, int low, int high) |
static WidthAndSignedness | getIntegerWidthAndSignedness (const clang::ASTContext &context, const clang::QualType Type) |
static struct WidthAndSignedness | EncompassingIntegerType (ArrayRef< struct WidthAndSignedness > Types) |
static bool | areBOSTypesCompatible (int From, int To) |
Checks if using the result of __builtin_object_size(p, From ) in place of __builtin_object_size(p, To ) is correct. More... | |
static llvm::Value * | getDefaultBuiltinObjectSizeResult (unsigned Type, llvm::IntegerType *ResType) |
static CanQualType | getOSLogArgType (ASTContext &C, int Size) |
Get the argument type for arguments to os_log_helper. More... | |
static bool | isSpecialMixedSignMultiply (unsigned BuiltinID, WidthAndSignedness Op1Info, WidthAndSignedness Op2Info, WidthAndSignedness ResultInfo) |
Determine if a binop is a checked mixed-sign multiply we can specialize. More... | |
static RValue | EmitCheckedMixedSignMultiply (CodeGenFunction &CGF, const clang::Expr *Op1, WidthAndSignedness Op1Info, const clang::Expr *Op2, WidthAndSignedness Op2Info, const clang::Expr *ResultArg, QualType ResultQTy, WidthAndSignedness ResultInfo) |
Emit a checked mixed-sign multiply. More... | |
static Value * | EmitTargetArchBuiltinExpr (CodeGenFunction *CGF, unsigned BuiltinID, const CallExpr *E, llvm::Triple::ArchType Arch) |
static llvm::VectorType * | GetNeonType (CodeGenFunction *CGF, NeonTypeFlags TypeFlags, llvm::Triple::ArchType Arch, bool V1Ty=false) |
static llvm::VectorType * | GetFloatNeonType (CodeGenFunction *CGF, NeonTypeFlags IntTypeFlags) |
static const NeonIntrinsicInfo * | findNeonIntrinsicInMap (ArrayRef< NeonIntrinsicInfo > IntrinsicMap, unsigned BuiltinID, bool &MapProvenSorted) |
static Value * | EmitCommonNeonSISDBuiltinExpr (CodeGenFunction &CGF, const NeonIntrinsicInfo &SISDInfo, SmallVectorImpl< Value *> &Ops, const CallExpr *E) |
static Value * | packTBLDVectorList (CodeGenFunction &CGF, ArrayRef< Value *> Ops, Value *ExtOp, Value *IndexOp, llvm::Type *ResTy, unsigned IntID, const char *Name) |
static Value * | EmitSpecialRegisterBuiltin (CodeGenFunction &CGF, const CallExpr *E, llvm::Type *RegisterType, llvm::Type *ValueType, bool IsRead, StringRef SysReg="") |
static bool | HasExtraNeonArgument (unsigned BuiltinID) |
Return true if BuiltinID is an overloaded Neon intrinsic with an extra argument that specifies the vector type. More... | |
static Value * | EmitAArch64TblBuiltinExpr (CodeGenFunction &CGF, unsigned BuiltinID, const CallExpr *E, SmallVectorImpl< Value *> &Ops, llvm::Triple::ArchType Arch) |
static Value * | getMaskVecValue (CodeGenFunction &CGF, Value *Mask, unsigned NumElts) |
static Value * | EmitX86MaskedStore (CodeGenFunction &CGF, SmallVectorImpl< Value *> &Ops, unsigned Align) |
static Value * | EmitX86MaskedLoad (CodeGenFunction &CGF, SmallVectorImpl< Value *> &Ops, unsigned Align) |
static Value * | EmitX86MaskLogic (CodeGenFunction &CGF, Instruction::BinaryOps Opc, unsigned NumElts, SmallVectorImpl< Value *> &Ops, bool InvertLHS=false) |
static Value * | EmitX86SubVectorBroadcast (CodeGenFunction &CGF, SmallVectorImpl< Value *> &Ops, llvm::Type *DstTy, unsigned SrcSizeInBits, unsigned Align) |
static Value * | EmitX86Select (CodeGenFunction &CGF, Value *Mask, Value *Op0, Value *Op1) |
static Value * | EmitX86MaskedCompare (CodeGenFunction &CGF, unsigned CC, bool Signed, SmallVectorImpl< Value *> &Ops) |
static Value * | EmitX86Abs (CodeGenFunction &CGF, ArrayRef< Value *> Ops) |
static Value * | EmitX86MinMax (CodeGenFunction &CGF, ICmpInst::Predicate Pred, ArrayRef< Value *> Ops) |
static Value * | EmitX86SExtMask (CodeGenFunction &CGF, Value *Op, llvm::Type *DstTy) |
static Value * | EmitSystemZIntrinsicWithCC (CodeGenFunction &CGF, unsigned IntrinsicID, const CallExpr *E) |
Handle a SystemZ function in which the final argument is a pointer to an int that receives the post-instruction CC value. More... | |
Variables | |
static const NeonIntrinsicInfo | ARMSIMDIntrinsicMap [] |
static const NeonIntrinsicInfo | AArch64SIMDIntrinsicMap [] |
static const NeonIntrinsicInfo | AArch64SISDIntrinsicMap [] |
static bool | NEONSIMDIntrinsicsProvenSorted = false |
static bool | AArch64SIMDIntrinsicsProvenSorted = false |
static bool | AArch64SISDIntrinsicsProvenSorted = false |
#define INTRINSIC_WITH_CC | ( | NAME | ) |
#define INTRINSIC_X86_XSAVE_ID | ( | NAME | ) |
#define MMA_VARIANTS | ( | type | ) |
#define NEONMAP0 | ( | NameBase | ) | { #NameBase, NEON::BI__builtin_neon_ ## NameBase, 0, 0, 0 } |
Definition at line 3532 of file CGBuiltin.cpp.
#define NEONMAP1 | ( | NameBase, | |
LLVMIntrinsic, | |||
TypeModifier | |||
) |
Definition at line 3535 of file CGBuiltin.cpp.
#define NEONMAP2 | ( | NameBase, | |
LLVMIntrinsic, | |||
AltLLVMIntrinsic, | |||
TypeModifier | |||
) |
Definition at line 3539 of file CGBuiltin.cpp.
#define X86_CPU_SUBTYPE_COMPAT | ( | ARCHNAME, | |
ENUM, | |||
STR | |||
) | .Case(STR, {2u, static_cast<unsigned>(llvm::X86::ENUM)}) |
#define X86_CPU_TYPE_COMPAT | ( | ARCHNAME, | |
ENUM, | |||
STR | |||
) | .Case(STR, {1u, static_cast<unsigned>(llvm::X86::ENUM)}) |
#define X86_CPU_TYPE_COMPAT_WITH_ALIAS | ( | ARCHNAME, | |
ENUM, | |||
STR, | |||
ALIAS | |||
) | .Cases(STR, ALIAS, {1u, static_cast<unsigned>(llvm::X86::ENUM)}) |
#define X86_FEATURE_COMPAT | ( | VAL, | |
ENUM, | |||
STR | |||
) | .Case(STR, VAL) |
#define X86_VENDOR | ( | ENUM, | |
STRING | |||
) | .Case(STRING, {0u, static_cast<unsigned>(llvm::X86::ENUM)}) |
anonymous enum |
Definition at line 3493 of file CGBuiltin.cpp.
|
strong |
Definition at line 488 of file CGBuiltin.cpp.
|
static |
Checks if using the result of __builtin_object_size(p, From
) in place of __builtin_object_size(p, To
) is correct.
Definition at line 413 of file CGBuiltin.cpp.
|
static |
Definition at line 43 of file CGBuiltin.cpp.
|
static |
Definition at line 5639 of file CGBuiltin.cpp.
References clang::CallExpr::getArg(), clang::CodeGen::CodeGenFunction::getContext(), GetNeonType(), clang::CallExpr::getNumArgs(), clang::Expr::isIntegerConstantExpr(), and clang::CodeGen::Type.
|
static |
Definition at line 147 of file CGBuiltin.cpp.
|
static |
Utility to insert an atomic instruction based Instrinsic::ID and the expression node, where the return value is the result of the operation.
Definition at line 156 of file CGBuiltin.cpp.
|
static |
Definition at line 244 of file CGBuiltin.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitBuiltinExpr().
|
static |
Emit a checked mixed-sign multiply.
This is a cheaper specialization of the generic checked-binop irgen.
Definition at line 855 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CGBuilderTy::CreateStore(), EmitOverflowIntrinsic(), clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(), clang::CodeGen::CodeGenFunction::EmitScalarExpr(), clang::CodeGen::CodeGenFunction::EmitToMemory(), clang::CodeGen::RValue::get(), clang::CodeGen::Address::getElementType(), clang::Type::getPointeeType(), clang::Expr::getType(), isSpecialMixedSignMultiply(), clang::QualType::isVolatileQualified(), and clang::CodeGen::Type.
|
static |
Definition at line 4173 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::ConvertType(), clang::CodeGen::CGBuilderTy::CreateBitCast(), clang::CodeGen::CodeGenFunction::EmitNeonCall(), clang::CallExpr::getArg(), clang::Expr::getType(), clang::CodeGen::CodeGenFunction::LookupNeonLLVMIntrinsic(), Modifier, clang::CodeGen::CodeGenTypeCache::SizeTy, and clang::CodeGen::Type.
|
static |
EmitFAbs - Emit a call to .fabs().
Definition at line 278 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, fabs, and clang::CodeGen::CodeGenModule::getIntrinsic().
|
static |
Definition at line 267 of file CGBuiltin.cpp.
|
static |
Definition at line 84 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::EmitFromMemory().
|
static |
Definition at line 316 of file CGBuiltin.cpp.
|
static |
Definition at line 139 of file CGBuiltin.cpp.
|
static |
Definition at line 125 of file CGBuiltin.cpp.
|
static |
Emit a call to llvm.
{sadd,uadd,ssub,usub,smul,umul}.with.overflow.* depending on IntrinsicID.
Definition at line 331 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenModule::getIntrinsic(), and X.
Referenced by EmitCheckedMixedSignMultiply().
|
static |
Definition at line 346 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenModule::getIntrinsic(), and clang::CodeGen::CodeGenFunction::getLLVMContext().
|
static |
Emit the computation of the sign bit for a floating point value.
Returns the i1 sign bit value.
Definition at line 287 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGBuilderTy::CreateBitCast(), clang::CodeGen::CodeGenModule::getLLVMContext(), clang::CodeGen::CodeGenFunction::getTarget(), clang::TargetInfo::isBigEndian(), and clang::CodeGen::Type.
|
static |
Definition at line 4803 of file CGBuiltin.cpp.
|
static |
Handle a SystemZ function in which the final argument is a pointer to an int that receives the post-instruction CC value.
At the LLVM level this is represented as a function that returns a {result, cc} pair.
Definition at line 9432 of file CGBuiltin.cpp.
References clang::CallExpr::getNumArgs().
|
static |
Definition at line 3333 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::EmitAArch64BuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitAMDGPUBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitARMBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitHexagonBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitNVPTXBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitPPCBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitSystemZBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitWebAssemblyBuiltinExpr(), and clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr().
Referenced by clang::CodeGen::CodeGenFunction::EmitTargetBuiltinExpr().
|
static |
Definition at line 255 of file CGBuiltin.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitBuiltinExpr().
|
static |
Emit the conversions required to turn the given value into an integer of the given size.
Definition at line 73 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::EmitToMemory().
|
static |
Definition at line 234 of file CGBuiltin.cpp.
Referenced by clang::CodeGen::CodeGenFunction::EmitBuiltinExpr().
|
static |
Definition at line 7834 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::Type.
|
static |
Definition at line 7791 of file CGBuiltin.cpp.
|
static |
Definition at line 7728 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CGBuilderTy::CreateAlignedLoad(), clang::CodeGen::CGBuilderTy::CreateBitCast(), and getMaskVecValue().
|
static |
Definition at line 7710 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CGBuilderTy::CreateAlignedStore(), clang::CodeGen::CGBuilderTy::CreateBitCast(), and getMaskVecValue().
|
static |
Definition at line 7745 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CGBuilderTy::CreateBitCast(), getMaskVecValue(), and max().
|
static |
Definition at line 7846 of file CGBuiltin.cpp.
|
static |
Definition at line 7778 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and getMaskVecValue().
|
static |
Definition at line 7858 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CallExpr::getArg(), getMaskVecValue(), clang::Expr::IgnoreParenCasts(), and clang::CodeGen::Type.
|
static |
Definition at line 7758 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CGBuilderTy::CreateAlignedLoad().
|
static |
Definition at line 377 of file CGBuiltin.cpp.
|
static |
Definition at line 4115 of file CGBuiltin.cpp.
|
static |
Definition at line 421 of file CGBuiltin.cpp.
|
static |
Definition at line 3420 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenTypeCache::DoubleTy, clang::CodeGen::CodeGenTypeCache::FloatTy, clang::NeonTypeFlags::getEltType(), clang::CodeGen::CodeGenTypeCache::HalfTy, clang::NeonTypeFlags::Int16, clang::NeonTypeFlags::Int32, clang::NeonTypeFlags::Int64, and clang::NeonTypeFlags::isQuad().
|
static |
Definition at line 365 of file CGBuiltin.cpp.
References clang::ASTContext::getTypeInfo(), clang::Type::isBooleanType(), clang::Type::isIntegerType(), clang::Type::isSignedIntegerType(), and clang::TypeInfo::Width.
|
static |
Definition at line 7690 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CGBuilderTy::CreateBitCast().
Referenced by EmitX86MaskedLoad(), EmitX86MaskedStore(), EmitX86MaskLogic(), EmitX86Select(), and EmitX86SExtMask().
|
static |
Definition at line 3383 of file CGBuiltin.cpp.
References clang::CodeGen::CodeGenTypeCache::DoubleTy, clang::NeonTypeFlags::Float16, clang::NeonTypeFlags::Float32, clang::NeonTypeFlags::Float64, clang::CodeGen::CodeGenTypeCache::FloatTy, clang::NeonTypeFlags::getEltType(), clang::CodeGen::CodeGenTypeCache::HalfTy, clang::NeonTypeFlags::Int16, clang::CodeGen::CodeGenTypeCache::Int16Ty, clang::NeonTypeFlags::Int32, clang::CodeGen::CodeGenTypeCache::Int32Ty, clang::NeonTypeFlags::Int64, clang::CodeGen::CodeGenTypeCache::Int64Ty, clang::NeonTypeFlags::Int8, clang::CodeGen::CodeGenTypeCache::Int8Ty, clang::NeonTypeFlags::isQuad(), clang::NeonTypeFlags::Poly128, clang::NeonTypeFlags::Poly16, clang::NeonTypeFlags::Poly64, and clang::NeonTypeFlags::Poly8.
Referenced by EmitAArch64TblBuiltinExpr(), and clang::CodeGen::CodeGenFunction::EmitCommonNeonBuiltinExpr().
|
static |
Get the argument type for arguments to os_log_helper.
Definition at line 669 of file CGBuiltin.cpp.
References clang::ASTContext::getCanonicalType(), and clang::ASTContext::getIntTypeForBitwidth().
|
static |
Return true if BuiltinID is an overloaded Neon intrinsic with an extra argument that specifies the vector type.
Definition at line 4866 of file CGBuiltin.cpp.
|
static |
Determine if a binop is a checked mixed-sign multiply we can specialize.
Definition at line 843 of file CGBuiltin.cpp.
Referenced by EmitCheckedMixedSignMultiply().
|
static |
Utility to insert an atomic cmpxchg instruction.
CGF | The current codegen function. |
E | Builtin call expression to convert to cmpxchg. arg0 - address to operate on arg1 - value to compare with arg2 - new value |
ReturnBool | Specifies whether to return success flag of cmpxchg result or the old value. |
Definition at line 202 of file CGBuiltin.cpp.
|
static |
Utility to insert an atomic instruction based on Instrinsic::ID and the expression node.
Definition at line 97 of file CGBuiltin.cpp.
|
static |
Definition at line 4727 of file CGBuiltin.cpp.
|
static |
Definition at line 3786 of file CGBuiltin.cpp.
Definition at line 4110 of file CGBuiltin.cpp.
|
static |
Definition at line 3909 of file CGBuiltin.cpp.
Definition at line 4111 of file CGBuiltin.cpp.
|
static |
Definition at line 3544 of file CGBuiltin.cpp.
Definition at line 4108 of file CGBuiltin.cpp.