class CodeGenFunction
Declaration
class CodeGenFunction : public CodeGenTypeCache { /* full declaration omitted */ };
Description
CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:231
Inherits from: CodeGenTypeCache
Member Variables
- public clang::CodeGen::CodeGenModule& CGM
- public const clang::TargetInfo& Target
- public clang::CodeGen::CodeGenFunction* ParentCGF = nullptr
- public clang::CodeGen::LoopInfoStack LoopStack
- public clang::CodeGen::CGBuilderTy Builder
- public clang::CodeGen::VarBypassDetector Bypasses
- public SmallVector<llvm::CanonicalLoopInfo*, 4> OMPLoopNestStack
- Since OMPCanonicalLoops are nested inside other statements (in particular CapturedStmt generated by OMPExecutableDirective and non-perfectly nested loops), we cannot directly call OMPEmitOMPCanonicalLoop and receive its llvm::CanonicalLoopInfo. Instead, we call EmitStmt and any OMPEmitOMPCanonicalLoop called by it will add its CanonicalLoopInfo to this stack when done. Entering a new loop requires clearing this list; it either means we start parsing a new loop nest (in which case the previous loop nest goes out of scope) or a second loop in the same level in which case it would be ambiguous into which of the two (or more) loops the loop nest would extend.
- public int ExpectedOMPLoopDepth = 0
- Number of nested loop to be consumed by the last surrounding loop-associated directive.
- public const clang::Decl* CurFuncDecl
- CurFuncDecl - Holds the Decl for the current outermost non-closure context.
- public const clang::Decl* CurCodeDecl
- CurCodeDecl - This is the inner-most code context, which includes blocks.
- public const clang::CodeGen::CGFunctionInfo* CurFnInfo
- public clang::QualType FnRetTy
- public llvm::Function* CurFn = nullptr
- public llvm::SmallVector<const ParmVarDecl*, 4> FnArgs
- Save Parameter Decl for coroutine.
- public clang::CodeGen::CodeGenFunction::CGCoroInfo CurCoro
- public clang::GlobalDecl CurGD
- CurGD - The GlobalDecl for the current function being compiled.
- public EHScopeStack::stable_iterator PrologueCleanupDepth
- PrologueCleanupDepth - The cleanup depth enclosing all the cleanups associated with the parameters.
- public clang::CodeGen::CodeGenFunction::JumpDest ReturnBlock
- ReturnBlock - Unified return block.
- public clang::CodeGen::Address ReturnValue = Address::invalid()
- ReturnValue - The temporary alloca to hold the return value. This is invalid iff the function has no return value.
- public clang::CodeGen::Address ReturnValuePointer = Address::invalid()
- ReturnValuePointer - The temporary alloca to hold a pointer to sret. This is invalid if sret is not in use.
- public const clang::Expr* RetExpr = nullptr
- If a return statement is being visited, this holds the return statment's result expression.
- public llvm::AssertingVH<llvm::Instruction> AllocaInsertPt
- AllocaInsertPoint - This is an instruction in the entry block before which we prefer to insert allocas.
- private llvm::AssertingVH<llvm::Instruction> PostAllocaInsertPt = nullptr
- PostAllocaInsertPt will be lazily created when it is *really* required.
- public clang::CodeGen::CodeGenFunction:: CGCapturedStmtInfo* CapturedStmtInfo = nullptr
- public clang::SanitizerSet SanOpts
- Sanitizers enabled for this function.
- public bool IsSanitizerScope = false
- True if CodeGen currently emits code implementing sanitizer checks.
- public bool CurFuncIsThunk = false
- In C++, whether we are code generating a thunk. This controls whether we should emit cleanups.
- public bool AutoreleaseResult = false
- In ARC, whether we should autorelease the return value.
- public bool SawAsmBlock = false
- Whether we processed a Microsoft-style asm block during CodeGen. These can potentially set the return value.
- public const clang::NamedDecl* CurSEHParent = nullptr
- public bool IsOutlinedSEHHelper = false
- True if the current function is an outlined SEH helper. This can be a finally block or filter expression.
- public bool IsInPreservedAIRegion = false
- True if CodeGen currently emits code inside presereved access index region.
- public bool InNoMergeAttributedStmt = false
- True if the current statement has nomerge attribute.
- public bool InNoInlineAttributedStmt = false
- True if the current statement has noinline attribute.
- public bool InAlwaysInlineAttributedStmt = false
- True if the current statement has always_inline attribute.
- public const clang::CallExpr* MustTailCall = nullptr
- public const CodeGen::CGBlockInfo* BlockInfo = nullptr
- public llvm::Value* BlockPointer = nullptr
- public llvm::DenseMap<const VarDecl*, FieldDecl*> LambdaCaptureFields
- public clang::FieldDecl* LambdaThisCaptureField = nullptr
- public llvm::DenseMap<const VarDecl*, llvm::Value*> NRVOFlags
- A mapping from NRVO variables to the flags used to indicate when the NRVO has been applied to this variable.
- public clang::CodeGen::EHScopeStack EHStack
- public llvm::SmallVector<char, 256> LifetimeExtendedCleanupStack
- public llvm::SmallVector<const JumpDest*, 2> SEHTryEpilogueStack
- public llvm::Instruction* CurrentFuncletPad = nullptr
- public clang::CodeGen::Address NormalCleanupDest = Address::invalid()
- i32s containing the indexes of the cleanup destinations.
- public unsigned int NextCleanupDestIndex = 1
- public llvm::BasicBlock* EHResumeBlock = nullptr
- EHResumeBlock - Unified block containing a call to llvm.eh.resume.
- public llvm::Value* ExceptionSlot = nullptr
- The exception slot. All landing pads write the current exception pointer into this alloca.
- public llvm::AllocaInst* EHSelectorSlot = nullptr
- The selector slot. Under the MandatoryCleanup model, all landing pads write the current selector value into this alloca.
- public SmallVector<clang::CodeGen::Address, 1> SEHCodeSlotStack
- A stack of exception code slots. Entering an __except block pushes a slot on the stack and leaving pops one. The __exception_code() intrinsic loads a value from the top of the stack.
- public llvm::Value* SEHInfo = nullptr
- Value returned by __exception_info intrinsic.
- public const clang::OMPExecutableDirective* OMPParentLoopDirectiveForScan = nullptr
- Parent loop-based directive for scan directive.
- public llvm::BasicBlock* OMPBeforeScanBlock = nullptr
- public llvm::BasicBlock* OMPAfterScanBlock = nullptr
- public llvm::BasicBlock* OMPScanExitBlock = nullptr
- public llvm::BasicBlock* OMPScanDispatch = nullptr
- public bool OMPFirstScanLoop = false
- public clang::FPOptions CurFPFeatures
- public SmallVector<llvm::Value*, 8> ObjCEHValueStack
- ObjCEHValueStack - Stack of Objective-C exception values, used for rethrows.
- public EHScopeStack::stable_iterator CurrentCleanupScopeDepth = EHScopeStack::stable_end()
- private clang::CodeGen::CGDebugInfo* DebugInfo
- private unsigned int VLAExprCounter = 0
- Used to create unique names for artificial VLA size debug info variables.
- private bool DisableDebugInfo = false
- private bool DidCallStackSave = false
- DidCallStackSave - Whether llvm.stacksave has been called. Used to avoid calling llvm.stacksave for multiple VLAs in the same scope.
- private llvm::IndirectBrInst* IndirectBranch = nullptr
- IndirectBranch - The first time an indirect goto is seen we create a block with an indirect branch. Every time we see the address of a label taken, we add the label to the indirect goto. Every subsequent indirect goto is codegen'd as a jump to the IndirectBranch's basic block.
- private clang::CodeGen::CodeGenFunction::DeclMapTy LocalDeclMap
- LocalDeclMap - This keeps track of the LLVM allocas or globals for local C decls.
- private llvm::DenseMap<const ParmVarDecl*, EHScopeStack::stable_iterator> CalleeDestructedParamCleanups
- private llvm::SmallDenseMap<const ParmVarDecl*, const ImplicitParamDecl*, 2> SizeArguments
- SizeArguments - If a ParmVarDecl had the pass_object_size attribute, this will contain a mapping from said ParmVarDecl to its implicit "object_size" parameter.
- private llvm::DenseMap<llvm::AllocaInst*, int> EscapedLocals
- Track escaped local variables with auto storage. Used during SEH outlining to produce a call to llvm.localescape.
- private llvm::DenseMap<const LabelDecl*, JumpDest> LabelMap
- LabelMap - This keeps track of the LLVM basic block for each C label.
- private SmallVector<clang::CodeGen::CodeGenFunction:: BreakContinue, 8> BreakContinueStack
- private clang::CodeGen::CodeGenFunction:: OpenMPCancelExitStack OMPCancelStack
- private clang::CodeGen::CodeGenPGO PGO
- private llvm::SwitchInst* SwitchInsn = nullptr
- SwitchInsn - This is nearest current switch instruction. It is null if current context is not in a switch.
- private SmallVector<uint64_t, 16>* SwitchWeights = nullptr
- The branch weights of SwitchInsn when doing instrumentation based PGO.
- private SmallVector<Stmt::Likelihood, 16>* SwitchLikelihood = nullptr
- The likelihood attributes of the SwitchCase.
- private llvm::BasicBlock* CaseRangeBlock = nullptr
- CaseRangeBlock - This block holds if condition check for last case statement range in current switch instruction.
- private llvm::DenseMap<const OpaqueValueExpr*, LValue> OpaqueLValues
- OpaqueLValues - Keeps track of the current set of opaque value expressions.
- private llvm::DenseMap<const OpaqueValueExpr*, RValue> OpaqueRValues
- private llvm::DenseMap<const Expr*, llvm::Value*> VLASizeMap
- private llvm::BasicBlock* UnreachableBlock = nullptr
- A block containing a single 'unreachable' instruction. Created lazily by getUnreachableBlock().
- private unsigned int NumReturnExprs = 0
- Counts of the number return expressions in the function.
- private unsigned int NumSimpleReturnExprs = 0
- Count the number of simple (constant) return expressions in the function.
- private clang::SourceLocation LastStopPoint
- The last regular (non-return) debug location (breakpoint) in the function.
- public clang::CurrentSourceLocExprScope CurSourceLocExprScope
- Source location information about the default argument or member initializer expression we're evaluating, if any.
- private clang::ImplicitParamDecl* CXXABIThisDecl = nullptr
- CXXThisDecl - When generating code for a C++ member function, this will hold the implicit 'this' declaration.
- private llvm::Value* CXXABIThisValue = nullptr
- private llvm::Value* CXXThisValue = nullptr
- private clang::CharUnits CXXABIThisAlignment
- private clang::CharUnits CXXThisAlignment
- private clang::CodeGen::Address CXXDefaultInitExprThis = Address::invalid()
- The value of 'this' to use when evaluating CXXDefaultInitExprs within this expression.
- private llvm::Value* ArrayInitIndex = nullptr
- The current array initialization index when evaluating an ArrayInitIndexExpr within an ArrayInitLoopExpr.
- private clang::CodeGen::CallArgList CXXInheritedCtorInitExprArgs
- The values of function arguments to use when evaluating CXXInheritedCtorInitExprs within this context.
- private clang::ImplicitParamDecl* CXXStructorImplicitParamDecl = nullptr
- CXXStructorImplicitParamDecl - When generating code for a constructor or destructor, this will hold the implicit argument (e.g. VTT).
- private llvm::Value* CXXStructorImplicitParamValue = nullptr
- private clang::CodeGen::CodeGenFunction:: ConditionalEvaluation* OutermostConditional = nullptr
- OutermostConditional - Points to the outermost active conditional control. This is used so that we know if a temporary should be destroyed conditionally.
- private clang::CodeGen::CodeGenFunction::LexicalScope* CurLexicalScope = nullptr
- The current lexical scope.
- private clang::SourceLocation CurEHLocation
- The current source location that should be used for exception handling code.
- private llvm::DenseMap<const ValueDecl*, BlockByrefInfo> BlockByrefInfos
- BlockByrefInfos - For each __block variable, contains information about the layout of the variable.
- private llvm::Value* RetValNullabilityPrecondition = nullptr
- Used by -fsanitize=nullability-return to determine whether the return value can be checked.
- private clang::CodeGen::Address ReturnLocation = Address::invalid()
- Used to store precise source locations for return statements by the runtime return value checks.
- private llvm::BasicBlock* TerminateLandingPad = nullptr
- private llvm::BasicBlock* TerminateHandler = nullptr
- private llvm::SmallVector<llvm::BasicBlock*, 2> TrapBBs
- private llvm::MapVector<llvm::Value*, llvm::BasicBlock*> TerminateFunclets
- Terminate funclets keyed by parent funclet pad.
- private unsigned int LargestVectorWidth = 0
- Largest vector width used in ths function. Will be used to create a function attribute.
- private bool ShouldEmitLifetimeMarkers
- True if we need emit the life-time markers. This is initially set in the constructor, but could be overwritten to true if this is a coroutine.
- private llvm::SmallVector< std::pair<llvm::WeakTrackingVH, llvm::Value*>, 4> DeferredReplacements
Inherited from CodeGenTypeCache:
- public VoidTy
- public Int8Ty
- public Int16Ty
- public Int32Ty
- public Int64Ty
- public HalfTy
- public BFloatTy
- public FloatTy
- public DoubleTy
- public IntTy
- public CharTy
- public
- public
- public
- public
- public
- public
- public PointerWidthInBits
- public
- public
- public ASTAllocaAddressSpace
- public RuntimeCC
Method Overview
- public void ActivateCleanupBlock(EHScopeStack::stable_iterator Cleanup, llvm::Instruction * DominatingIP)
- public llvm::GlobalVariable * AddInitializerToStaticVarDecl(const clang::VarDecl & D, llvm::GlobalVariable * GV)
- private void AddObjCARCExceptionMetadata(llvm::Instruction * Inst)
- public bool AlwaysEmitXRayCustomEvents() const
- public bool AlwaysEmitXRayTypedEvents() const
- public clang::CodeGen::CGCallee BuildAppleKextVirtualCall(const clang::CXXMethodDecl * MD, clang::NestedNameSpecifier * Qual, llvm::Type * Ty)
- public clang::CodeGen::CGCallee BuildAppleKextVirtualDestructorCall(const clang::CXXDestructorDecl * DD, clang::CXXDtorType Type, const clang::CXXRecordDecl * RD)
- public void BuildBlockRelease(llvm::Value * DeclPtr, clang::CodeGen::BlockFieldFlags flags, bool CanThrow)
- public clang::QualType BuildFunctionArgList(clang::GlobalDecl GD, clang::CodeGen::FunctionArgList & Args)
- public llvm::Value * BuildVector(ArrayRef<llvm::Value *> Ops)
- private CodeGenFunction(const clang::CodeGen::CodeGenFunction &)
- public CodeGenFunction(clang::CodeGen::CodeGenModule & cgm, bool suppressNewContext = false)
- public bool ConstantFoldsToSimpleInteger(const clang::Expr * Cond, bool & Result, bool AllowLabels = false)
- public bool ConstantFoldsToSimpleInteger(const clang::Expr * Cond, llvm::APSInt & Result, bool AllowLabels = false)
- public static bool ContainsLabel(const clang::Stmt * S, bool IgnoreCaseStmts = false)
- public llvm::Type * ConvertType(clang::QualType T)
- public llvm::Type * ConvertType(const clang::TypeDecl * T)
- public llvm::Type * ConvertTypeForMem(clang::QualType T)
- public clang::CodeGen::AggValueSlot CreateAggTemp(clang::QualType T, const llvm::Twine & Name = "tmp", clang::CodeGen::Address * Alloca = nullptr)
- public clang::CodeGen::Address CreateDefaultAlignTempAlloca(llvm::Type * Ty, const llvm::Twine & Name = "tmp")
- public clang::CodeGen::Address CreateIRTemp(clang::QualType T, const llvm::Twine & Name = "tmp")
- public clang::CodeGen::Address CreateMemTemp(clang::QualType T, clang::CharUnits Align, const llvm::Twine & Name = "tmp", clang::CodeGen::Address * Alloca = nullptr)
- public clang::CodeGen::Address CreateMemTemp(clang::QualType T, const llvm::Twine & Name = "tmp", clang::CodeGen::Address * Alloca = nullptr)
- public clang::CodeGen::Address CreateMemTempWithoutCast(clang::QualType T, clang::CharUnits Align, const llvm::Twine & Name = "tmp")
- public clang::CodeGen::Address CreateMemTempWithoutCast(clang::QualType T, const llvm::Twine & Name = "tmp")
- public clang::CodeGen::Address CreateTempAlloca(llvm::Type * Ty, clang::CharUnits align, const llvm::Twine & Name = "tmp", llvm::Value * ArraySize = nullptr, clang::CodeGen::Address * Alloca = nullptr)
- public llvm::AllocaInst * CreateTempAlloca(llvm::Type * Ty, const llvm::Twine & Name = "tmp", llvm::Value * ArraySize = nullptr)
- public clang::CodeGen::Address CreateTempAllocaWithoutCast(llvm::Type * Ty, clang::CharUnits align, const llvm::Twine & Name = "tmp", llvm::Value * ArraySize = nullptr)
- public void DeactivateCleanupBlock(EHScopeStack::stable_iterator Cleanup, llvm::Instruction * DominatingIP)
- public llvm::Value * DecodeAddrUsedInPrologue(llvm::Value * F, llvm::Value * EncodedAddr)
- public llvm::Value * EmitAArch64BuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E, llvm::Triple::ArchType Arch)
- public llvm::Value * EmitAArch64CompareBuiltinExpr(llvm::Value * Op, llvm::Type * Ty, const llvm::CmpInst::Predicate Fp, const llvm::CmpInst::Predicate Ip, const llvm::Twine & Name = "")
- public llvm::Value * EmitAArch64SVEBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- public llvm::Value * EmitAMDGPUBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- public clang::CodeGen::RValue EmitAMDGPUDevicePrintfCallExpr(const clang::CallExpr * E)
- public llvm::Value * EmitARCAutorelease(llvm::Value * value)
- public llvm::Value * EmitARCAutoreleaseReturnValue(llvm::Value * value)
- public void EmitARCCopyWeak(clang::CodeGen::Address dst, clang::CodeGen::Address src)
- public void EmitARCDestroyStrong(clang::CodeGen::Address addr, clang::CodeGen::ARCPreciseLifetime_t precise)
- public void EmitARCDestroyWeak(clang::CodeGen::Address addr)
- public llvm::Value * EmitARCExtendBlockObject(const clang::Expr * expr)
- public void EmitARCInitWeak(clang::CodeGen::Address addr, llvm::Value * value)
- public void EmitARCIntrinsicUse(ArrayRef<llvm::Value *> values)
- public llvm::Value * EmitARCLoadWeak(clang::CodeGen::Address addr)
- public llvm::Value * EmitARCLoadWeakRetained(clang::CodeGen::Address addr)
- public void EmitARCMoveWeak(clang::CodeGen::Address dst, clang::CodeGen::Address src)
- public void EmitARCNoopIntrinsicUse(ArrayRef<llvm::Value *> values)
- public llvm::Value * EmitARCReclaimReturnedObject(const clang::Expr * e, bool allowUnsafeClaim)
- public void EmitARCRelease(llvm::Value * value, clang::CodeGen::ARCPreciseLifetime_t precise)
- public llvm::Value * EmitARCRetain(clang::QualType type, llvm::Value * value)
- public llvm::Value * EmitARCRetainAutorelease(clang::QualType type, llvm::Value * value)
- public llvm::Value * EmitARCRetainAutoreleaseNonBlock(llvm::Value * value)
- public llvm::Value * EmitARCRetainAutoreleaseReturnValue(llvm::Value * value)
- public llvm::Value * EmitARCRetainAutoreleaseScalarExpr(const clang::Expr * expr)
- public llvm::Value * EmitARCRetainAutoreleasedReturnValue(llvm::Value * value)
- public llvm::Value * EmitARCRetainBlock(llvm::Value * value, bool mandatory)
- public llvm::Value * EmitARCRetainNonBlock(llvm::Value * value)
- public llvm::Value * EmitARCRetainScalarExpr(const clang::Expr * expr)
- public std::pair<LValue, llvm::Value *> EmitARCStoreAutoreleasing(const clang::BinaryOperator * e)
- public std::pair<LValue, llvm::Value *> EmitARCStoreStrong(const clang::BinaryOperator * e, bool ignored)
- public llvm::Value * EmitARCStoreStrong(clang::CodeGen::LValue lvalue, llvm::Value * value, bool resultIgnored)
- public llvm::Value * EmitARCStoreStrongCall(clang::CodeGen::Address addr, llvm::Value * value, bool resultIgnored)
- public std::pair<LValue, llvm::Value *> EmitARCStoreUnsafeUnretained(const clang::BinaryOperator * e, bool ignored)
- public llvm::Value * EmitARCStoreWeak(clang::CodeGen::Address addr, llvm::Value * value, bool ignored)
- public llvm::Value * EmitARCUnsafeClaimAutoreleasedReturnValue(llvm::Value * value)
- public llvm::Value * EmitARCUnsafeUnretainedScalarExpr(const clang::Expr * expr)
- public llvm::Value * EmitARMBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue, llvm::Triple::ArchType Arch)
- public llvm::Value * EmitARMCDEBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue, llvm::Triple::ArchType Arch)
- public llvm::Value * EmitARMMVEBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue, llvm::Triple::ArchType Arch)
- public void EmitAggExpr(const clang::Expr * E, clang::CodeGen::AggValueSlot AS)
- public clang::CodeGen::LValue EmitAggExprToLValue(const clang::Expr * E)
- public void EmitAggregateAssign(clang::CodeGen::LValue Dest, clang::CodeGen::LValue Src, clang::QualType EltTy)
- public void EmitAggregateCopy(clang::CodeGen::LValue Dest, clang::CodeGen::LValue Src, clang::QualType EltTy, AggValueSlot::Overlap_t MayOverlap, bool isVolatile = false)
- public void EmitAggregateCopyCtor(clang::CodeGen::LValue Dest, clang::CodeGen::LValue Src, AggValueSlot::Overlap_t MayOverlap)
- public void EmitAggregateStore(llvm::Value * Val, clang::CodeGen::Address Dest, bool DestIsVolatile)
- public void EmitAndRegisterVariableArrayDimensions(clang::CodeGen::CGDebugInfo * DI, const clang::VarDecl & D, bool EmitDebugInfo)
- public llvm::Value * EmitAnnotationCall(llvm::Function * AnnotationFn, llvm::Value * AnnotatedVal, llvm::StringRef AnnotationStr, clang::SourceLocation Location, const clang::AnnotateAttr * Attr)
- public clang::CodeGen::RValue EmitAnyExpr(const clang::Expr * E, clang::CodeGen::AggValueSlot aggSlot = AggValueSlot::ignored(), bool ignoreResult = false)
- public void EmitAnyExprToExn(const clang::Expr * E, clang::CodeGen::Address Addr)
- public void EmitAnyExprToMem(const clang::Expr * E, clang::CodeGen::Address Location, clang::Qualifiers Quals, bool IsInitializer)
- public clang::CodeGen::RValue EmitAnyExprToTemp(const clang::Expr * E)
- public clang::CodeGen::LValue EmitArraySubscriptExpr(const clang::ArraySubscriptExpr * E, bool Accessed = false)
- public clang::CodeGen::Address EmitArrayToPointerDecay(const clang::Expr * Array, clang::CodeGen::LValueBaseInfo * BaseInfo = nullptr, clang::CodeGen::TBAAAccessInfo * TBAAInfo = nullptr)
- public void EmitAsanPrologueOrEpilogue(bool Prologue)
- private std::pair<llvm::Value *, llvm::Type *> EmitAsmInput(const TargetInfo::ConstraintInfo & Info, const clang::Expr * InputExpr, std::string & ConstraintStr)
- private std::pair<llvm::Value *, llvm::Type *> EmitAsmInputLValue(const TargetInfo::ConstraintInfo & Info, clang::CodeGen::LValue InputValue, clang::QualType InputType, std::string & ConstraintStr, clang::SourceLocation Loc)
- public void EmitAsmStmt(const clang::AsmStmt & S)
- public std::pair<RValue, llvm::Value *> EmitAtomicCompareExchange(clang::CodeGen::LValue Obj, clang::CodeGen::RValue Expected, clang::CodeGen::RValue Desired, clang::SourceLocation Loc, llvm::AtomicOrdering Success = llvm::AtomicOrdering::SequentiallyConsistent, llvm::AtomicOrdering Failure = llvm::AtomicOrdering::SequentiallyConsistent, bool IsWeak = false, clang::CodeGen::AggValueSlot Slot = AggValueSlot::ignored())
- public clang::CodeGen::RValue EmitAtomicExpr(clang::AtomicExpr * E)
- public void EmitAtomicInit(clang::Expr * E, clang::CodeGen::LValue lvalue)
- public clang::CodeGen::RValue EmitAtomicLoad(clang::CodeGen::LValue lvalue, clang::SourceLocation loc, llvm::AtomicOrdering AO, bool IsVolatile = false, clang::CodeGen::AggValueSlot slot = AggValueSlot::ignored())
- public clang::CodeGen::RValue EmitAtomicLoad(clang::CodeGen::LValue LV, clang::SourceLocation SL, clang::CodeGen::AggValueSlot Slot = AggValueSlot::ignored())
- public void EmitAtomicStore(clang::CodeGen::RValue rvalue, clang::CodeGen::LValue lvalue, llvm::AtomicOrdering AO, bool IsVolatile, bool isInit)
- public void EmitAtomicStore(clang::CodeGen::RValue rvalue, clang::CodeGen::LValue lvalue, bool isInit)
- public void EmitAtomicUpdate(clang::CodeGen::LValue LVal, llvm::AtomicOrdering AO, const llvm::function_ref<RValue (RValue)> & UpdateOp, bool IsVolatile)
- public void EmitAttributedStmt(const clang::AttributedStmt & S)
- public clang::CodeGen::CodeGenFunction::AutoVarEmission EmitAutoVarAlloca(const clang::VarDecl & var)
- public void EmitAutoVarCleanups(const clang::CodeGen::CodeGenFunction::AutoVarEmission & emission)
- public void EmitAutoVarDecl(const clang::VarDecl & D)
- public void EmitAutoVarInit(const clang::CodeGen::CodeGenFunction::AutoVarEmission & emission)
- public llvm::Value * EmitBPFBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- public clang::CodeGen::LValue EmitBinaryOperatorLValue(const clang::BinaryOperator * E)
- public void EmitBlock(llvm::BasicBlock * BB, bool IsFinished = false)
- public void EmitBlockAfterUses(llvm::BasicBlock * BB)
- public clang::CodeGen::RValue EmitBlockCallExpr(const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
- public llvm::Value * EmitBlockCopyAndAutorelease(llvm::Value * Block, clang::QualType Ty)
- public llvm::Value * EmitBlockLiteral(const clang::BlockExpr *)
- private llvm::Value * EmitBlockLiteral(const clang::CodeGen::CGBlockInfo & Info)
- public void EmitBlockWithFallThrough(llvm::BasicBlock * BB, const clang::Stmt * S)
- public void EmitBoundsCheck(const clang::Expr * E, const clang::Expr * Base, llvm::Value * Index, clang::QualType IndexType, bool Accessed)
- public void EmitBranch(llvm::BasicBlock * Block)
- public void EmitBranchOnBoolExpr(const clang::Expr * Cond, llvm::BasicBlock * TrueBlock, llvm::BasicBlock * FalseBlock, uint64_t TrueCount, Stmt::Likelihood LH = Stmt::LH_None)
- public void EmitBranchThroughCleanup(clang::CodeGen::CodeGenFunction::JumpDest Dest)
- public void EmitBranchToCounterBlock(const clang::Expr * Cond, BinaryOperator::Opcode LOp, llvm::BasicBlock * TrueBlock, llvm::BasicBlock * FalseBlock, uint64_t TrueCount = 0, Stmt::Likelihood LH = Stmt::LH_None, const clang::Expr * CntrIdx = nullptr)
- public void EmitBreakStmt(const clang::BreakStmt & S)
- public clang::CodeGen::RValue EmitBuiltinAlignTo(const clang::CallExpr * E, bool AlignUp)
- public llvm::Value * EmitBuiltinAvailable(const llvm::VersionTuple & Version)
- public clang::CodeGen::RValue EmitBuiltinExpr(const clang::GlobalDecl GD, unsigned int BuiltinID, const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
- public clang::CodeGen::RValue EmitBuiltinIsAligned(const clang::CallExpr * E)
- public clang::CodeGen::RValue EmitBuiltinNewDeleteCall(const clang::FunctionProtoType * Type, const clang::CallExpr * TheCallExpr, bool IsDelete)
- public llvm::Value * EmitCMSEClearRecord(llvm::Value * V, llvm::IntegerType * ITy, clang::QualType RTy)
- public llvm::Value * EmitCMSEClearRecord(llvm::Value * V, llvm::ArrayType * ATy, clang::QualType RTy)
- public clang::CodeGen::RValue EmitCUDAKernelCallExpr(const clang::CUDAKernelCallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
- public void EmitCXXAggrConstructorCall(const clang::CXXConstructorDecl * D, const clang::ArrayType * ArrayTy, clang::CodeGen::Address ArrayPtr, const clang::CXXConstructExpr * E, bool NewPointerIsChecked, bool ZeroInitialization = false)
- public void EmitCXXAggrConstructorCall(const clang::CXXConstructorDecl * D, llvm::Value * NumElements, clang::CodeGen::Address ArrayPtr, const clang::CXXConstructExpr * E, bool NewPointerIsChecked, bool ZeroInitialization = false)
- public clang::CodeGen::LValue EmitCXXBindTemporaryLValue(const clang::CXXBindTemporaryExpr * E)
- public void EmitCXXConstructExpr(const clang::CXXConstructExpr * E, clang::CodeGen::AggValueSlot Dest)
- public clang::CodeGen::LValue EmitCXXConstructLValue(const clang::CXXConstructExpr * E)
- public void EmitCXXConstructorCall(const clang::CXXConstructorDecl * D, clang::CXXCtorType Type, bool ForVirtualBase, bool Delegating, clang::CodeGen::AggValueSlot ThisAVS, const clang::CXXConstructExpr * E)
- public void EmitCXXConstructorCall(const clang::CXXConstructorDecl * D, clang::CXXCtorType Type, bool ForVirtualBase, bool Delegating, clang::CodeGen::Address This, clang::CodeGen::CallArgList & Args, AggValueSlot::Overlap_t Overlap, clang::SourceLocation Loc, bool NewPointerIsChecked)
- public void EmitCXXDeleteExpr(const clang::CXXDeleteExpr * E)
- public void EmitCXXDestructorCall(const clang::CXXDestructorDecl * D, clang::CXXDtorType Type, bool ForVirtualBase, bool Delegating, clang::CodeGen::Address This, clang::QualType ThisTy)
- public clang::CodeGen::RValue EmitCXXDestructorCall(clang::GlobalDecl Dtor, const clang::CodeGen::CGCallee & Callee, llvm::Value * This, clang::QualType ThisTy, llvm::Value * ImplicitParam, clang::QualType ImplicitParamTy, const clang::CallExpr * E)
- public void EmitCXXForRangeStmt(const clang::CXXForRangeStmt & S, ArrayRef<const clang::Attr *> Attrs = None)
- public void EmitCXXGlobalVarDeclInit(const clang::VarDecl & D, llvm::GlobalVariable * GV, bool PerformInit)
- public void EmitCXXGuardedInit(const clang::VarDecl & D, llvm::GlobalVariable * DeclPtr, bool PerformInit)
- public void EmitCXXGuardedInitBranch(llvm::Value * NeedsInit, llvm::BasicBlock * InitBlock, llvm::BasicBlock * NoInitBlock, clang::CodeGen::CodeGenFunction::GuardKind Kind, const clang::VarDecl * D)
- public clang::CodeGen::RValue EmitCXXMemberCallExpr(const clang::CXXMemberCallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
- public clang::CodeGen::Address EmitCXXMemberDataPointerAddress(const clang::Expr * E, clang::CodeGen::Address base, llvm::Value * memberPtr, const clang::MemberPointerType * memberPtrType, clang::CodeGen::LValueBaseInfo * BaseInfo = nullptr, clang::CodeGen::TBAAAccessInfo * TBAAInfo = nullptr)
- public clang::CodeGen::RValue EmitCXXMemberOrOperatorCall(const clang::CXXMethodDecl * Method, const clang::CodeGen::CGCallee & Callee, clang::CodeGen::ReturnValueSlot ReturnValue, llvm::Value * This, llvm::Value * ImplicitParam, clang::QualType ImplicitParamTy, const clang::CallExpr * E, clang::CodeGen::CallArgList * RtlArgs)
- public clang::CodeGen::RValue EmitCXXMemberOrOperatorMemberCallExpr(const clang::CallExpr * CE, const clang::CXXMethodDecl * MD, clang::CodeGen::ReturnValueSlot ReturnValue, bool HasQualifier, clang::NestedNameSpecifier * Qualifier, bool IsArrow, const clang::Expr * Base)
- public clang::CodeGen::RValue EmitCXXMemberPointerCallExpr(const clang::CXXMemberCallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
- public llvm::Value * EmitCXXNewExpr(const clang::CXXNewExpr * E)
- public clang::CodeGen::RValue EmitCXXOperatorMemberCallExpr(const clang::CXXOperatorCallExpr * E, const clang::CXXMethodDecl * MD, clang::CodeGen::ReturnValueSlot ReturnValue)
- public clang::CodeGen::RValue EmitCXXPseudoDestructorExpr(const clang::CXXPseudoDestructorExpr * E)
- public void EmitCXXTemporary(const clang::CXXTemporary * Temporary, clang::QualType TempType, clang::CodeGen::Address Ptr)
- public void EmitCXXThrowExpr(const clang::CXXThrowExpr * E, bool KeepInsertionPoint = true)
- public void EmitCXXTryStmt(const clang::CXXTryStmt & S)
- public llvm::Value * EmitCXXTypeidExpr(const clang::CXXTypeidExpr * E)
- public clang::CodeGen::LValue EmitCXXTypeidLValue(const clang::CXXTypeidExpr * E)
- public clang::CodeGen::Address EmitCXXUuidofExpr(const clang::CXXUuidofExpr * E)
- public clang::CodeGen::LValue EmitCXXUuidofLValue(const clang::CXXUuidofExpr * E)
- public clang::CodeGen::RValue EmitCall(const clang::CodeGen::CGFunctionInfo & CallInfo, const clang::CodeGen::CGCallee & Callee, clang::CodeGen::ReturnValueSlot ReturnValue, const clang::CodeGen::CallArgList & Args, llvm::CallBase ** callOrInvoke, bool IsMustTail, clang::SourceLocation Loc)
- public clang::CodeGen::RValue EmitCall(const clang::CodeGen::CGFunctionInfo & CallInfo, const clang::CodeGen::CGCallee & Callee, clang::CodeGen::ReturnValueSlot ReturnValue, const clang::CodeGen::CallArgList & Args, llvm::CallBase ** callOrInvoke = nullptr, bool IsMustTail = false)
- public clang::CodeGen::RValue EmitCall(clang::QualType FnType, const clang::CodeGen::CGCallee & Callee, const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue, llvm::Value * Chain = nullptr)
- public void EmitCallAndReturnForThunk(llvm::FunctionCallee Callee, const clang::ThunkInfo * Thunk, bool IsUnprototyped)
- public void EmitCallArg(clang::CodeGen::CallArgList & args, const clang::Expr * E, clang::QualType ArgType)
- public void EmitCallArgs(clang::CodeGen::CallArgList & Args, clang::CodeGen::CodeGenFunction::PrototypeWrapper Prototype, llvm::iterator_range<CallExpr::const_arg_iterator> ArgRange, clang::CodeGen::CodeGenFunction::AbstractCallee AC = clang::CodeGen::CodeGenFunction::AbstractCallee(), unsigned int ParamsToSkip = 0, clang::CodeGen::CodeGenFunction::EvaluationOrder Order = EvaluationOrder::Default)
- public clang::CodeGen::RValue EmitCallExpr(const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue = clang::CodeGen::ReturnValueSlot())
- public clang::CodeGen::LValue EmitCallExprLValue(const clang::CallExpr * E)
- public llvm::CallBase * EmitCallOrInvoke(llvm::FunctionCallee Callee, ArrayRef<llvm::Value *> Args, const llvm::Twine & Name = "")
- public clang::CodeGen::CGCallee EmitCallee(const clang::Expr * E)
- public void EmitCapturedLocals(clang::CodeGen::CodeGenFunction & ParentCGF, const clang::Stmt * OutlinedStmt, bool IsFilter)
- public llvm::Function * EmitCapturedStmt(const clang::CapturedStmt & S, clang::CapturedRegionKind K)
- public void EmitCaseStmt(const clang::CaseStmt & S, ArrayRef<const clang::Attr *> Attrs)
- public void EmitCaseStmtRange(const clang::CaseStmt & S, ArrayRef<const clang::Attr *> Attrs)
- public clang::CodeGen::LValue EmitCastLValue(const clang::CastExpr * E)
- public llvm::Value * EmitCastToVoidPtr(llvm::Value * value)
- public void EmitCfiCheckFail()
- public void EmitCfiCheckStub()
- public void EmitCfiSlowPathCheck(clang::SanitizerMask Kind, llvm::Value * Cond, llvm::ConstantInt * TypeId, llvm::Value * Ptr, ArrayRef<llvm::Constant *> StaticArgs)
- public void EmitCheck(ArrayRef<std::pair<llvm::Value *, SanitizerMask>> Checked, clang::CodeGen::SanitizerHandler Check, ArrayRef<llvm::Constant *> StaticArgs, ArrayRef<llvm::Value *> DynamicArgs)
- public llvm::Constant * EmitCheckSourceLocation(clang::SourceLocation Loc)
- public llvm::Constant * EmitCheckTypeDescriptor(clang::QualType T)
- public llvm::Value * EmitCheckValue(llvm::Value * V)
- public llvm::Value * EmitCheckedArgForBuiltin(const clang::Expr * E, clang::CodeGen::CodeGenFunction::BuiltinCheckKind Kind)
- public llvm::Value * EmitCheckedInBoundsGEP(llvm::Type * ElemTy, llvm::Value * Ptr, ArrayRef<llvm::Value *> IdxList, bool SignedIndices, bool IsSubtraction, clang::SourceLocation Loc, const llvm::Twine & Name = "")
- public clang::CodeGen::LValue EmitCheckedLValue(const clang::Expr * E, clang::CodeGen::CodeGenFunction::TypeCheckKind TCK)
- public clang::CodeGen::RValue EmitCoawaitExpr(const clang::CoawaitExpr & E, clang::CodeGen::AggValueSlot aggSlot = AggValueSlot::ignored(), bool ignoreResult = false)
- public clang::CodeGen::LValue EmitCoawaitLValue(const clang::CoawaitExpr * E)
- public llvm::Value * EmitCommonNeonBuiltinExpr(unsigned int BuiltinID, unsigned int LLVMIntrinsic, unsigned int AltLLVMIntrinsic, const char * NameHint, unsigned int Modifier, const clang::CallExpr * E, SmallVectorImpl<llvm::Value *> & Ops, clang::CodeGen::Address PtrOp0, clang::CodeGen::Address PtrOp1, llvm::Triple::ArchType Arch)
- public clang::CodeGen::LValue EmitComplexAssignmentLValue(const clang::BinaryOperator * E)
- public clang::CodeGen::LValue EmitComplexCompoundAssignmentLValue(const clang::CompoundAssignOperator * E)
- public clang::CodeGen::CodeGenFunction::ComplexPairTy EmitComplexExpr(const clang::Expr * E, bool IgnoreReal = false, bool IgnoreImag = false)
- public void EmitComplexExprIntoLValue(const clang::Expr * E, clang::CodeGen::LValue dest, bool isInit)
- public clang::CodeGen::CodeGenFunction::ComplexPairTy EmitComplexPrePostIncDec(const clang::UnaryOperator * E, clang::CodeGen::LValue LV, bool isInc, bool isPre)
- public llvm::Value * EmitComplexToScalarConversion(clang::CodeGen::CodeGenFunction::ComplexPairTy Src, clang::QualType SrcTy, clang::QualType DstTy, clang::SourceLocation Loc)
- public clang::CodeGen::LValue EmitCompoundAssignmentLValue(const clang::CompoundAssignOperator * E)
- public clang::CodeGen::LValue EmitCompoundLiteralLValue(const clang::CompoundLiteralExpr * E)
- public clang::CodeGen::Address EmitCompoundStmt(const clang::CompoundStmt & S, bool GetLast = false, clang::CodeGen::AggValueSlot AVS = AggValueSlot::ignored())
- public clang::CodeGen::Address EmitCompoundStmtWithoutScope(const clang::CompoundStmt & S, bool GetLast = false, clang::CodeGen::AggValueSlot AVS = AggValueSlot::ignored())
- public clang::CodeGen::LValue EmitConditionalOperatorLValue(const clang::AbstractConditionalOperator * E)
- public void EmitConstructorBody(clang::CodeGen::FunctionArgList & Args)
- public void EmitContinueStmt(const clang::ContinueStmt & S)
- public void EmitCoreturnStmt(const clang::CoreturnStmt & S)
- public void EmitCoroutineBody(const clang::CoroutineBodyStmt & S)
- public clang::CodeGen::RValue EmitCoroutineIntrinsic(const clang::CallExpr * E, unsigned int IID)
- public clang::CodeGen::RValue EmitCoyieldExpr(const clang::CoyieldExpr & E, clang::CodeGen::AggValueSlot aggSlot = AggValueSlot::ignored(), bool ignoreResult = false)
- public clang::CodeGen::LValue EmitCoyieldLValue(const clang::CoyieldExpr * E)
- public void EmitCtorPrologue(const clang::CXXConstructorDecl * CD, clang::CXXCtorType Type, clang::CodeGen::FunctionArgList & Args)
- public void EmitDecl(const clang::Decl & D)
- private void EmitDeclMetadata()
- public void EmitDeclRefExprDbgValue(const clang::DeclRefExpr * E, const clang::APValue & Init)
- public clang::CodeGen::LValue EmitDeclRefLValue(const clang::DeclRefExpr * E)
- public void EmitDeclStmt(const clang::DeclStmt & S)
- public void EmitDefaultStmt(const clang::DefaultStmt & S, ArrayRef<const clang::Attr *> Attrs)
- public void EmitDelegateCXXConstructorCall(const clang::CXXConstructorDecl * Ctor, clang::CXXCtorType CtorType, const clang::CodeGen::FunctionArgList & Args, clang::SourceLocation Loc)
- public void EmitDelegateCallArg(clang::CodeGen::CallArgList & args, const clang::VarDecl * param, clang::SourceLocation loc)
- public void EmitDelegatingCXXConstructorCall(const clang::CXXConstructorDecl * Ctor, const clang::CodeGen::FunctionArgList & Args)
- public void EmitDeleteCall(const clang::FunctionDecl * DeleteFD, llvm::Value * Ptr, clang::QualType DeleteTy, llvm::Value * NumElements = nullptr, clang::CharUnits CookieSize = clang::CharUnits())
- public void EmitDestructorBody(clang::CodeGen::FunctionArgList & Args)
- public void EmitDoStmt(const clang::DoStmt & S, ArrayRef<const clang::Attr *> Attrs = None)
- public llvm::Value * EmitDynamicCast(clang::CodeGen::Address V, const clang::CXXDynamicCastExpr * DCE)
- public void EmitEndEHSpec(const clang::Decl * D)
- public void EmitExprAsInit(const clang::Expr * init, const clang::ValueDecl * D, clang::CodeGen::LValue lvalue, bool capturedByInit)
- public clang::CodeGen::LValue EmitExtVectorElementExpr(const clang::ExtVectorElementExpr * E)
- public clang::CodeGen::Address EmitExtVectorElementLValue(clang::CodeGen::LValue V)
- public void EmitExtendGCLifetime(llvm::Value * object)
- public clang::CodeGen::Address EmitFieldAnnotations(const clang::FieldDecl * D, clang::CodeGen::Address V)
- public void EmitForStmt(const clang::ForStmt & S, ArrayRef<const clang::Attr *> Attrs = None)
- public void EmitForwardingCallToLambda(const clang::CXXMethodDecl * LambdaCallOperator, clang::CodeGen::CallArgList & CallArgs)
- public llvm::Value * EmitFromMemory(llvm::Value * Value, clang::QualType Ty)
- public void EmitFunctionBody(const clang::Stmt * Body)
- public void EmitFunctionEpilog(const clang::CodeGen::CGFunctionInfo & FI, bool EmitRetDbgLoc, clang::SourceLocation EndLoc)
- public void EmitFunctionProlog(const clang::CodeGen::CGFunctionInfo & FI, llvm::Function * Fn, const clang::CodeGen::FunctionArgList & Args)
- public void EmitGotoStmt(const clang::GotoStmt & S)
- public llvm::Value * EmitHexagonBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- public void EmitIfStmt(const clang::IfStmt & S)
- public void EmitIgnoredConditionalOperator(const clang::AbstractConditionalOperator * E)
- public void EmitIgnoredExpr(const clang::Expr * E)
- public void EmitIndirectGotoStmt(const clang::IndirectGotoStmt & S)
- public void EmitInheritedCXXConstructorCall(const clang::CXXConstructorDecl * D, bool ForVirtualBase, clang::CodeGen::Address This, bool InheritedFromVBase, const clang::CXXInheritedCtorInitExpr * E)
- public clang::CodeGen::LValue EmitInitListLValue(const clang::InitListExpr * E)
- public void EmitInitializerForField(clang::FieldDecl * Field, clang::CodeGen::LValue LHS, clang::Expr * Init)
- public void EmitInlinedInheritingCXXConstructorCall(const clang::CXXConstructorDecl * Ctor, clang::CXXCtorType CtorType, bool ForVirtualBase, bool Delegating, clang::CodeGen::CallArgList & Args)
- public void EmitInvariantStart(llvm::Constant * Addr, clang::CharUnits Size)
- public llvm::Value * EmitIvarOffset(const clang::ObjCInterfaceDecl * Interface, const clang::ObjCIvarDecl * Ivar)
- private void EmitKernelMetadata(const clang::FunctionDecl * FD, llvm::Function * Fn)
- public clang::CodeGen::LValue EmitLValue(const clang::Expr * E)
- public clang::CodeGen::LValue EmitLValueForField(clang::CodeGen::LValue Base, const clang::FieldDecl * Field)
- public clang::CodeGen::LValue EmitLValueForFieldInitialization(clang::CodeGen::LValue Base, const clang::FieldDecl * Field)
- public clang::CodeGen::LValue EmitLValueForIvar(clang::QualType ObjectTy, llvm::Value * Base, const clang::ObjCIvarDecl * Ivar, unsigned int CVRQualifiers)
- public clang::CodeGen::LValue EmitLValueForLambdaField(const clang::FieldDecl * Field)
- public void EmitLabel(const clang::LabelDecl * D)
- public void EmitLabelStmt(const clang::LabelStmt & S)
- public void EmitLambdaBlockInvokeBody()
- public void EmitLambdaDelegatingInvokeBody(const clang::CXXMethodDecl * MD)
- public void EmitLambdaStaticInvokeBody(const clang::CXXMethodDecl * MD)
- public void EmitLambdaVLACapture(const clang::VariableArrayType * VAT, clang::CodeGen::LValue LV)
- public llvm::BasicBlock * EmitLandingPad()
- public void EmitLifetimeEnd(llvm::Value * Size, llvm::Value * Addr)
- public llvm::Value * EmitLifetimeStart(llvm::TypeSize Size, llvm::Value * Addr)
- public clang::CodeGen::RValue EmitLoadOfBitfieldLValue(clang::CodeGen::LValue LV, clang::SourceLocation Loc)
- public clang::CodeGen::CodeGenFunction::ComplexPairTy EmitLoadOfComplex(clang::CodeGen::LValue src, clang::SourceLocation loc)
- public clang::CodeGen::RValue EmitLoadOfExtVectorElementLValue(clang::CodeGen::LValue V)
- public clang::CodeGen::RValue EmitLoadOfGlobalRegLValue(clang::CodeGen::LValue LV)
- public clang::CodeGen::RValue EmitLoadOfLValue(clang::CodeGen::LValue V, clang::SourceLocation Loc)
- public clang::CodeGen::Address EmitLoadOfPointer(clang::CodeGen::Address Ptr, const clang::PointerType * PtrTy, clang::CodeGen::LValueBaseInfo * BaseInfo = nullptr, clang::CodeGen::TBAAAccessInfo * TBAAInfo = nullptr)
- public clang::CodeGen::LValue EmitLoadOfPointerLValue(clang::CodeGen::Address Ptr, const clang::PointerType * PtrTy)
- public clang::CodeGen::Address EmitLoadOfReference(clang::CodeGen::LValue RefLVal, clang::CodeGen::LValueBaseInfo * PointeeBaseInfo = nullptr, clang::CodeGen::TBAAAccessInfo * PointeeTBAAInfo = nullptr)
- public clang::CodeGen::LValue EmitLoadOfReferenceLValue(clang::CodeGen::Address RefAddr, clang::QualType RefTy, clang::CodeGen::AlignmentSource Source = AlignmentSource::Type)
- public clang::CodeGen::LValue EmitLoadOfReferenceLValue(clang::CodeGen::LValue RefLVal)
- public llvm::Value * EmitLoadOfScalar(clang::CodeGen::Address Addr, bool Volatile, clang::QualType Ty, clang::SourceLocation Loc, clang::CodeGen::AlignmentSource Source = AlignmentSource::Type, bool isNontemporal = false)
- public llvm::Value * EmitLoadOfScalar(clang::CodeGen::Address Addr, bool Volatile, clang::QualType Ty, clang::SourceLocation Loc, clang::CodeGen::LValueBaseInfo BaseInfo, clang::CodeGen::TBAAAccessInfo TBAAInfo, bool isNontemporal = false)
- public llvm::Value * EmitLoadOfScalar(clang::CodeGen::LValue lvalue, clang::SourceLocation Loc)
- public clang::CodeGen::Address EmitMSVAListRef(const clang::Expr * E)
- public llvm::Value * EmitMSVCBuiltinExpr(clang::CodeGen::CodeGenFunction::MSVCIntrin BuiltinID, const clang::CallExpr * E)
- public clang::CodeGen::LValue EmitMaterializeTemporaryExpr(const clang::MaterializeTemporaryExpr * E)
- public clang::CodeGen::LValue EmitMatrixSubscriptExpr(const clang::MatrixSubscriptExpr * E)
- public clang::CodeGen::LValue EmitMemberExpr(const clang::MemberExpr * E)
- public void EmitMultiVersionResolver(llvm::Function * Resolver, ArrayRef<clang::CodeGen::CodeGenFunction::MultiVersionResolverOption> Options)
- public void EmitMustTailThunk(clang::GlobalDecl GD, llvm::Value * AdjustedThisPtr, llvm::FunctionCallee Callee)
- public llvm::Value * EmitNVPTXBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- public clang::CodeGen::RValue EmitNVPTXDevicePrintfCallExpr(const clang::CallExpr * E)
- public llvm::Value * EmitNeonCall(llvm::Function * F, SmallVectorImpl<llvm::Value *> & O, const char * name, unsigned int shift = 0, bool rightshift = false)
- public llvm::Value * EmitNeonRShiftImm(llvm::Value * Vec, llvm::Value * Amt, llvm::Type * Ty, bool usgn, const char * name)
- public llvm::Value * EmitNeonShiftVector(llvm::Value * V, llvm::Type * Ty, bool negateForRightShift)
- public llvm::Value * EmitNeonSplat(llvm::Value * V, llvm::Constant * Idx, const llvm::ElementCount & Count)
- public llvm::Value * EmitNeonSplat(llvm::Value * V, llvm::Constant * Idx)
- public void EmitNewArrayInitializer(const clang::CXXNewExpr * E, clang::QualType elementType, llvm::Type * ElementTy, clang::CodeGen::Address NewPtr, llvm::Value * NumElements, llvm::Value * AllocSizeWithoutCookie)
- public void EmitNonNullArgCheck(clang::CodeGen::RValue RV, clang::QualType ArgType, clang::SourceLocation ArgLoc, clang::CodeGen::CodeGenFunction::AbstractCallee AC, unsigned int ParmNum)
- public llvm::Value * EmitNonNullRValueCheck(clang::CodeGen::RValue RV, clang::QualType T)
- public void EmitNoreturnRuntimeCallOrInvoke(llvm::FunctionCallee callee, ArrayRef<llvm::Value *> args)
- public llvm::CallInst * EmitNounwindRuntimeCall(llvm::FunctionCallee callee, const llvm::Twine & name = "")
- public llvm::CallInst * EmitNounwindRuntimeCall(llvm::FunctionCallee callee, ArrayRef<llvm::Value *> args, const llvm::Twine & name = "")
- public void EmitNullInitialization(clang::CodeGen::Address DestPtr, clang::QualType Ty)
- public void EmitNullabilityCheck(clang::CodeGen::LValue LHS, llvm::Value * RHS, clang::SourceLocation Loc)
- public void EmitOMPAggregateAssign(clang::CodeGen::Address DestAddr, clang::CodeGen::Address SrcAddr, clang::QualType OriginalType, const llvm::function_ref<void (Address, Address)> CopyGen)
- public clang::CodeGen::LValue EmitOMPArraySectionExpr(const clang::OMPArraySectionExpr * E, bool IsLowerBound = true)
- public void EmitOMPAtomicDirective(const clang::OMPAtomicDirective & S)
- public std::pair<bool, RValue> EmitOMPAtomicSimpleUpdateExpr(clang::CodeGen::LValue X, clang::CodeGen::RValue E, clang::BinaryOperatorKind BO, bool IsXLHSInRHSPart, llvm::AtomicOrdering AO, clang::SourceLocation Loc, const llvm::function_ref<RValue (RValue)> CommonGen)
- public void EmitOMPBarrierDirective(const clang::OMPBarrierDirective & S)
- public void EmitOMPCancelDirective(const clang::OMPCancelDirective & S)
- public void EmitOMPCancellationPointDirective(const clang::OMPCancellationPointDirective & S)
- public void EmitOMPCanonicalLoop(const clang::OMPCanonicalLoop * S)
- public llvm::CanonicalLoopInfo * EmitOMPCollapsedCanonicalLoopNest(const clang::Stmt * S, int Depth)
- public void EmitOMPCopy(clang::QualType OriginalType, clang::CodeGen::Address DestAddr, clang::CodeGen::Address SrcAddr, const clang::VarDecl * DestVD, const clang::VarDecl * SrcVD, const clang::Expr * Copy)
- public bool EmitOMPCopyinClause(const clang::OMPExecutableDirective & D)
- public void EmitOMPCriticalDirective(const clang::OMPCriticalDirective & S)
- public void EmitOMPDepobjDirective(const clang::OMPDepobjDirective & S)
- public void EmitOMPDistributeDirective(const clang::OMPDistributeDirective & S)
- public void EmitOMPDistributeLoop(const clang::OMPLoopDirective & S, const clang::CodeGen::CodeGenFunction::CodeGenLoopTy & CodeGenLoop, clang::Expr * IncExpr)
- private void EmitOMPDistributeOuterLoop(clang::OpenMPDistScheduleClauseKind ScheduleKind, const clang::OMPLoopDirective & S, clang::CodeGen::CodeGenFunction::OMPPrivateScope & LoopScope, const clang::CodeGen::CodeGenFunction::OMPLoopArguments & LoopArgs, const clang::CodeGen::CodeGenFunction::CodeGenLoopTy & CodeGenLoopContent)
- public void EmitOMPDistributeParallelForDirective(const clang::OMPDistributeParallelForDirective & S)
- public void EmitOMPDistributeParallelForSimdDirective(const clang::OMPDistributeParallelForSimdDirective & S)
- public void EmitOMPDistributeSimdDirective(const clang::OMPDistributeSimdDirective & S)
- public bool EmitOMPFirstprivateClause(const clang::OMPExecutableDirective & D, clang::CodeGen::CodeGenFunction::OMPPrivateScope & PrivateScope)
- public void EmitOMPFlushDirective(const clang::OMPFlushDirective & S)
- public void EmitOMPForDirective(const clang::OMPForDirective & S)
- private void EmitOMPForOuterLoop(const clang::OpenMPScheduleTy & ScheduleKind, bool IsMonotonic, const clang::OMPLoopDirective & S, clang::CodeGen::CodeGenFunction::OMPPrivateScope & LoopScope, bool Ordered, const clang::CodeGen::CodeGenFunction::OMPLoopArguments & LoopArgs, const clang::CodeGen::CodeGenFunction::CodeGenDispatchBoundsTy & CGDispatchBounds)
- public void EmitOMPForSimdDirective(const clang::OMPForSimdDirective & S)
- public void EmitOMPGenericLoopDirective(const clang::OMPGenericLoopDirective & S)
- public void EmitOMPInnerLoop(const clang::OMPExecutableDirective & S, bool RequiresCleanup, const clang::Expr * LoopCond, const clang::Expr * IncExpr, const llvm::function_ref<void (CodeGenFunction &)> BodyGen, const llvm::function_ref<void (CodeGenFunction &)> PostIncGen)
- public void EmitOMPInteropDirective(const clang::OMPInteropDirective & S)
- public void EmitOMPLastprivateClauseFinal(const clang::OMPExecutableDirective & D, bool NoFinals, llvm::Value * IsLastIterCond = nullptr)
- public bool EmitOMPLastprivateClauseInit(const clang::OMPExecutableDirective & D, clang::CodeGen::CodeGenFunction::OMPPrivateScope & PrivateScope)
- public void EmitOMPLinearClause(const clang::OMPLoopDirective & D, CodeGenFunction::OMPPrivateScope & PrivateScope)
- public void EmitOMPLinearClauseFinal(const clang::OMPLoopDirective & D, const llvm::function_ref<llvm::Value *(CodeGenFunction &)> CondGen)
- public bool EmitOMPLinearClauseInit(const clang::OMPLoopDirective & D)
- public void EmitOMPLoopBody(const clang::OMPLoopDirective & D, clang::CodeGen::CodeGenFunction::JumpDest LoopExit)
- public void EmitOMPMaskedDirective(const clang::OMPMaskedDirective & S)
- public void EmitOMPMasterDirective(const clang::OMPMasterDirective & S)
- public void EmitOMPMasterTaskLoopDirective(const clang::OMPMasterTaskLoopDirective & S)
- public void EmitOMPMasterTaskLoopSimdDirective(const clang::OMPMasterTaskLoopSimdDirective & S)
- public void EmitOMPMetaDirective(const clang::OMPMetaDirective & S)
- public void EmitOMPOrderedDirective(const clang::OMPOrderedDirective & S)
- private void EmitOMPOuterLoop(bool DynamicOrOrdered, bool IsMonotonic, const clang::OMPLoopDirective & S, clang::CodeGen::CodeGenFunction::OMPPrivateScope & LoopScope, const clang::CodeGen::CodeGenFunction::OMPLoopArguments & LoopArgs, const clang::CodeGen::CodeGenFunction::CodeGenLoopTy & CodeGenLoop, const clang::CodeGen::CodeGenFunction::CodeGenOrderedTy & CodeGenOrdered)
- public void EmitOMPParallelDirective(const clang::OMPParallelDirective & S)
- public void EmitOMPParallelForDirective(const clang::OMPParallelForDirective & S)
- public void EmitOMPParallelForSimdDirective(const clang::OMPParallelForSimdDirective & S)
- public void EmitOMPParallelMasterDirective(const clang::OMPParallelMasterDirective & S)
- public void EmitOMPParallelMasterTaskLoopDirective(const clang::OMPParallelMasterTaskLoopDirective & S)
- public void EmitOMPParallelMasterTaskLoopSimdDirective(const clang::OMPParallelMasterTaskLoopSimdDirective & S)
- public void EmitOMPParallelSectionsDirective(const clang::OMPParallelSectionsDirective & S)
- public void EmitOMPPrivateClause(const clang::OMPExecutableDirective & D, clang::CodeGen::CodeGenFunction::OMPPrivateScope & PrivateScope)
- public void EmitOMPPrivateLoopCounters(const clang::OMPLoopDirective & S, clang::CodeGen::CodeGenFunction::OMPPrivateScope & LoopScope)
- public void EmitOMPReductionClauseFinal(const clang::OMPExecutableDirective & D, const clang::OpenMPDirectiveKind ReductionKind)
- public void EmitOMPReductionClauseInit(const clang::OMPExecutableDirective & D, clang::CodeGen::CodeGenFunction::OMPPrivateScope & PrivateScope, bool ForInscan = false)
- public void EmitOMPScanDirective(const clang::OMPScanDirective & S)
- public void EmitOMPSectionDirective(const clang::OMPSectionDirective & S)
- public void EmitOMPSectionsDirective(const clang::OMPSectionsDirective & S)
- public clang::CodeGen::LValue EmitOMPSharedLValue(const clang::Expr * E)
- public void EmitOMPSimdDirective(const clang::OMPSimdDirective & S)
- public void EmitOMPSimdFinal(const clang::OMPLoopDirective & D, const llvm::function_ref<llvm::Value *(CodeGenFunction &)> CondGen)
- public void EmitOMPSimdInit(const clang::OMPLoopDirective & D)
- public void EmitOMPSingleDirective(const clang::OMPSingleDirective & S)
- public void EmitOMPTargetDataDirective(const clang::OMPTargetDataDirective & S)
- public static void EmitOMPTargetDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetDirective & S)
- public void EmitOMPTargetDirective(const clang::OMPTargetDirective & S)
- public void EmitOMPTargetEnterDataDirective(const clang::OMPTargetEnterDataDirective & S)
- public void EmitOMPTargetExitDataDirective(const clang::OMPTargetExitDataDirective & S)
- public static void EmitOMPTargetParallelDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetParallelDirective & S)
- public void EmitOMPTargetParallelDirective(const clang::OMPTargetParallelDirective & S)
- public static void EmitOMPTargetParallelForDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetParallelForDirective & S)
- public void EmitOMPTargetParallelForDirective(const clang::OMPTargetParallelForDirective & S)
- public static void EmitOMPTargetParallelForSimdDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetParallelForSimdDirective & S)
- public void EmitOMPTargetParallelForSimdDirective(const clang::OMPTargetParallelForSimdDirective & S)
- public static void EmitOMPTargetSimdDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetSimdDirective & S)
- public void EmitOMPTargetSimdDirective(const clang::OMPTargetSimdDirective & S)
- public void EmitOMPTargetTaskBasedDirective(const clang::OMPExecutableDirective & S, const clang::CodeGen::RegionCodeGenTy & BodyGen, clang::CodeGen::CodeGenFunction::OMPTargetDataInfo & InputInfo)
- public static void EmitOMPTargetTeamsDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetTeamsDirective & S)
- public void EmitOMPTargetTeamsDirective(const clang::OMPTargetTeamsDirective & S)
- public static void EmitOMPTargetTeamsDistributeDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetTeamsDistributeDirective & S)
- public void EmitOMPTargetTeamsDistributeDirective(const clang::OMPTargetTeamsDistributeDirective & S)
- public static void EmitOMPTargetTeamsDistributeParallelForDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetTeamsDistributeParallelForDirective & S)
- public void EmitOMPTargetTeamsDistributeParallelForDirective(const clang::OMPTargetTeamsDistributeParallelForDirective & S)
- public static void EmitOMPTargetTeamsDistributeParallelForSimdDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetTeamsDistributeParallelForSimdDirective & S)
- public void EmitOMPTargetTeamsDistributeParallelForSimdDirective(const clang::OMPTargetTeamsDistributeParallelForSimdDirective & S)
- public static void EmitOMPTargetTeamsDistributeSimdDeviceFunction(clang::CodeGen::CodeGenModule & CGM, llvm::StringRef ParentName, const clang::OMPTargetTeamsDistributeSimdDirective & S)
- public void EmitOMPTargetTeamsDistributeSimdDirective(const clang::OMPTargetTeamsDistributeSimdDirective & S)
- public void EmitOMPTargetUpdateDirective(const clang::OMPTargetUpdateDirective & S)
- public void EmitOMPTaskBasedDirective(const clang::OMPExecutableDirective & S, const clang::OpenMPDirectiveKind CapturedRegion, const clang::CodeGen::RegionCodeGenTy & BodyGen, const clang::CodeGen::CodeGenFunction::TaskGenTy & TaskGen, clang::CodeGen::OMPTaskDataTy & Data)
- public void EmitOMPTaskDirective(const clang::OMPTaskDirective & S)
- public void EmitOMPTaskLoopBasedDirective(const clang::OMPLoopDirective & S)
- public void EmitOMPTaskLoopDirective(const clang::OMPTaskLoopDirective & S)
- public void EmitOMPTaskLoopSimdDirective(const clang::OMPTaskLoopSimdDirective & S)
- public void EmitOMPTaskgroupDirective(const clang::OMPTaskgroupDirective & S)
- public void EmitOMPTaskwaitDirective(const clang::OMPTaskwaitDirective & S)
- public void EmitOMPTaskyieldDirective(const clang::OMPTaskyieldDirective & S)
- public void EmitOMPTeamsDirective(const clang::OMPTeamsDirective & S)
- public void EmitOMPTeamsDistributeDirective(const clang::OMPTeamsDistributeDirective & S)
- public void EmitOMPTeamsDistributeParallelForDirective(const clang::OMPTeamsDistributeParallelForDirective & S)
- public void EmitOMPTeamsDistributeParallelForSimdDirective(const clang::OMPTeamsDistributeParallelForSimdDirective & S)
- public void EmitOMPTeamsDistributeSimdDirective(const clang::OMPTeamsDistributeSimdDirective & S)
- public void EmitOMPTileDirective(const clang::OMPTileDirective & S)
- public void EmitOMPUnrollDirective(const clang::OMPUnrollDirective & S)
- public void EmitOMPUseDeviceAddrClause(const clang::OMPUseDeviceAddrClause & C, clang::CodeGen::CodeGenFunction::OMPPrivateScope & PrivateScope, const llvm::DenseMap<const ValueDecl *, Address> & CaptureDeviceAddrMap)
- public void EmitOMPUseDevicePtrClause(const clang::OMPUseDevicePtrClause & C, clang::CodeGen::CodeGenFunction::OMPPrivateScope & PrivateScope, const llvm::DenseMap<const ValueDecl *, Address> & CaptureDeviceAddrMap)
- public bool EmitOMPWorksharingLoop(const clang::OMPLoopDirective & S, clang::Expr * EUB, const clang::CodeGen::CodeGenFunction::CodeGenLoopBoundsTy & CodeGenLoopBounds, const clang::CodeGen::CodeGenFunction::CodeGenDispatchBoundsTy & CGDispatchBounds)
- public llvm::Value * EmitObjCAlloc(llvm::Value * value, llvm::Type * returnType)
- public llvm::Value * EmitObjCAllocInit(llvm::Value * value, llvm::Type * resultType)
- public llvm::Value * EmitObjCAllocWithZone(llvm::Value * value, llvm::Type * returnType)
- public llvm::Value * EmitObjCArrayLiteral(const clang::ObjCArrayLiteral * E)
- public void EmitObjCAtSynchronizedStmt(const clang::ObjCAtSynchronizedStmt & S)
- public void EmitObjCAtThrowStmt(const clang::ObjCAtThrowStmt & S)
- public void EmitObjCAtTryStmt(const clang::ObjCAtTryStmt & S)
- public llvm::Value * EmitObjCAutorelease(llvm::Value * value, llvm::Type * returnType)
- public void EmitObjCAutoreleasePoolCleanup(llvm::Value * Ptr)
- public void EmitObjCAutoreleasePoolPop(llvm::Value * Ptr)
- public llvm::Value * EmitObjCAutoreleasePoolPush()
- public void EmitObjCAutoreleasePoolStmt(const clang::ObjCAutoreleasePoolStmt & S)
- public llvm::Value * EmitObjCBoxedExpr(const clang::ObjCBoxedExpr * E)
- public llvm::Value * EmitObjCCollectionLiteral(const clang::Expr * E, const clang::ObjCMethodDecl * MethodWithObjects)
- public llvm::Value * EmitObjCConsumeObject(clang::QualType T, llvm::Value * Ptr)
- public llvm::Value * EmitObjCDictionaryLiteral(const clang::ObjCDictionaryLiteral * E)
- public clang::CodeGen::LValue EmitObjCEncodeExprLValue(const clang::ObjCEncodeExpr * E)
- public llvm::Value * EmitObjCExtendObjectLifetime(clang::QualType T, llvm::Value * Ptr)
- public void EmitObjCForCollectionStmt(const clang::ObjCForCollectionStmt & S)
- public clang::CodeGen::LValue EmitObjCIsaExpr(const clang::ObjCIsaExpr * E)
- public clang::CodeGen::LValue EmitObjCIvarRefLValue(const clang::ObjCIvarRefExpr * E)
- public void EmitObjCMRRAutoreleasePoolPop(llvm::Value * Ptr)
- public llvm::Value * EmitObjCMRRAutoreleasePoolPush()
- public clang::CodeGen::RValue EmitObjCMessageExpr(const clang::ObjCMessageExpr * E, clang::CodeGen::ReturnValueSlot Return = clang::CodeGen::ReturnValueSlot())
- public clang::CodeGen::LValue EmitObjCMessageExprLValue(const clang::ObjCMessageExpr * E)
- public llvm::Value * EmitObjCProtocolExpr(const clang::ObjCProtocolExpr * E)
- public void EmitObjCRelease(llvm::Value * value, clang::CodeGen::ARCPreciseLifetime_t precise)
- public llvm::Value * EmitObjCRetainNonBlock(llvm::Value * value, llvm::Type * returnType)
- public llvm::Value * EmitObjCSelectorExpr(const clang::ObjCSelectorExpr * E)
- public clang::CodeGen::LValue EmitObjCSelectorLValue(const clang::ObjCSelectorExpr * E)
- public llvm::Value * EmitObjCStringLiteral(const clang::ObjCStringLiteral * E)
- public llvm::Value * EmitObjCThrowOperand(const clang::Expr * expr)
- public clang::CodeGen::LValue EmitOpaqueValueLValue(const clang::OpaqueValueExpr * e)
- public clang::CodeGen::RValue EmitOpenMPDevicePrintfCallExpr(const clang::CallExpr * E)
- public llvm::Value * EmitPPCBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- public void EmitParmDecl(const clang::VarDecl & D, clang::CodeGen::CodeGenFunction::ParamValue Arg, unsigned int ArgNo)
- public clang::CodeGen::LValue EmitPointerToDataMemberBinaryExpr(const clang::BinaryOperator * E)
- public clang::CodeGen::Address EmitPointerWithAlignment(const clang::Expr * Addr, clang::CodeGen::LValueBaseInfo * BaseInfo = nullptr, clang::CodeGen::TBAAAccessInfo * TBAAInfo = nullptr)
- public clang::CodeGen::LValue EmitPredefinedLValue(const clang::PredefinedExpr * E)
- public clang::CodeGen::LValue EmitPseudoObjectLValue(const clang::PseudoObjectExpr * e)
- public clang::CodeGen::RValue EmitPseudoObjectRValue(const clang::PseudoObjectExpr * e, clang::CodeGen::AggValueSlot slot = AggValueSlot::ignored())
- public llvm::Value * EmitRISCVBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
- public clang::CodeGen::RValue EmitRValueForField(clang::CodeGen::LValue LV, const clang::FieldDecl * FD, clang::SourceLocation Loc)
- public clang::CodeGen::RValue EmitReferenceBindingToExpr(const clang::Expr * E)
- public llvm::DebugLoc EmitReturnBlock()
- private void EmitReturnOfRValue(clang::CodeGen::RValue RV, clang::QualType Ty)
- public void EmitReturnStmt(const clang::ReturnStmt & S)
- public void EmitReturnValueCheck(llvm::Value * RV)
- public llvm::CallInst * EmitRuntimeCall(llvm::FunctionCallee callee, const llvm::Twine & name = "")
- public llvm::CallInst * EmitRuntimeCall(llvm::FunctionCallee callee, ArrayRef<llvm::Value *> args, const llvm::Twine & name = "")
- public llvm::CallBase * EmitRuntimeCallOrInvoke(llvm::FunctionCallee callee, const llvm::Twine & name = "")
- public llvm::CallBase * EmitRuntimeCallOrInvoke(llvm::FunctionCallee callee, ArrayRef<llvm::Value *> args, const llvm::Twine & name = "")
- public llvm::Value * EmitSEHAbnormalTermination()
- public llvm::Value * EmitSEHExceptionCode()
- public void EmitSEHExceptionCodeSave(clang::CodeGen::CodeGenFunction & ParentCGF, llvm::Value * ParentFP, llvm::Value * EntryEBP)
- public llvm::Value * EmitSEHExceptionInfo()
- public void EmitSEHLeaveStmt(const clang::SEHLeaveStmt & S)
- public void EmitSEHTryStmt(const clang::SEHTryStmt & S)
- public llvm::Value * EmitSVEAllTruePred(const clang::SVETypeFlags & TypeFlags)
- public llvm::Value * EmitSVEDupX(llvm::Value * Scalar, llvm::Type * Ty)
- public llvm::Value * EmitSVEDupX(llvm::Value * Scalar)
- public llvm::Value * EmitSVEGatherLoad(const clang::SVETypeFlags & TypeFlags, llvm::SmallVectorImpl<llvm::Value *> & Ops, unsigned int IntID)
- public llvm::Value * EmitSVEGatherPrefetch(const clang::SVETypeFlags & TypeFlags, SmallVectorImpl<llvm::Value *> & Ops, unsigned int IntID)
- public llvm::Value * EmitSVEMaskedLoad(const clang::CallExpr *, llvm::Type * ReturnTy, SmallVectorImpl<llvm::Value *> & Ops, unsigned int BuiltinID, bool IsZExtReturn)
- public llvm::Value * EmitSVEMaskedStore(const clang::CallExpr *, SmallVectorImpl<llvm::Value *> & Ops, unsigned int BuiltinID)
- public llvm::Value * EmitSVEMovl(const clang::SVETypeFlags & TypeFlags, llvm::ArrayRef<llvm::Value *> Ops, unsigned int BuiltinID)
- public llvm::Value * EmitSVEPMull(const clang::SVETypeFlags & TypeFlags, llvm::SmallVectorImpl<llvm::Value *> & Ops, unsigned int BuiltinID)
- public llvm::Value * EmitSVEPredicateCast(llvm::Value * Pred, llvm::ScalableVectorType * VTy)
- public llvm::Value * EmitSVEPrefetchLoad(const clang::SVETypeFlags & TypeFlags, SmallVectorImpl<llvm::Value *> & Ops, unsigned int BuiltinID)
- public llvm::Value * EmitSVEReinterpret(llvm::Value * Val, llvm::Type * Ty)
- public llvm::Value * EmitSVEScatterStore(const clang::SVETypeFlags & TypeFlags, llvm::SmallVectorImpl<llvm::Value *> & Ops, unsigned int IntID)
- public llvm::Value * EmitSVEStructLoad(const clang::SVETypeFlags & TypeFlags, SmallVectorImpl<llvm::Value *> & Ops, unsigned int IntID)
- public llvm::Value * EmitSVEStructStore(const clang::SVETypeFlags & TypeFlags, SmallVectorImpl<llvm::Value *> & Ops, unsigned int IntID)
- public void EmitSanitizerStatReport(llvm::SanitizerStatKind SSK)
- public clang::CodeGen::LValue EmitScalarCompoundAssignWithComplex(const clang::CompoundAssignOperator * E, llvm::Value *& Result)
- public llvm::Value * EmitScalarConversion(llvm::Value * Src, clang::QualType SrcTy, clang::QualType DstTy, clang::SourceLocation Loc)
- public llvm::Value * EmitScalarExpr(const clang::Expr * E, bool IgnoreResultAssign = false)
- public void EmitScalarInit(const clang::Expr * init, const clang::ValueDecl * D, clang::CodeGen::LValue lvalue, bool capturedByInit)
- public llvm::Value * EmitScalarPrePostIncDec(const clang::UnaryOperator * E, clang::CodeGen::LValue LV, bool isInc, bool isPre)
- public bool EmitScalarRangeCheck(llvm::Value * Value, clang::QualType Ty, clang::SourceLocation Loc)
- private void EmitSections(const clang::OMPExecutableDirective & S)
- public void EmitSehCppScopeBegin()
- public void EmitSehCppScopeEnd()
- public void EmitSehTryScopeBegin()
- public void EmitSehTryScopeEnd()
- public clang::CodeGen::RValue EmitSimpleCallExpr(const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
- public void EmitSimpleOMPExecutableDirective(const clang::OMPExecutableDirective & D)
- public bool EmitSimpleStmt(const clang::Stmt * S, ArrayRef<const clang::Attr *> Attrs)
- public void EmitStartEHSpec(const clang::Decl * D)
- public void EmitStaticVarDecl(const clang::VarDecl & D, llvm::GlobalValue::LinkageTypes Linkage)
- public void EmitStmt(const clang::Stmt * S, ArrayRef<const clang::Attr *> Attrs = None)
- public clang::CodeGen::LValue EmitStmtExprLValue(const clang::StmtExpr * E)
- public void EmitStopPoint(const clang::Stmt * S)
- public void EmitStoreOfComplex(clang::CodeGen::CodeGenFunction::ComplexPairTy V, clang::CodeGen::LValue dest, bool isInit)
- public void EmitStoreOfScalar(llvm::Value * Value, clang::CodeGen::Address Addr, bool Volatile, clang::QualType Ty, clang::CodeGen::AlignmentSource Source = AlignmentSource::Type, bool isInit = false, bool isNontemporal = false)
- public void EmitStoreOfScalar(llvm::Value * Value, clang::CodeGen::Address Addr, bool Volatile, clang::QualType Ty, clang::CodeGen::LValueBaseInfo BaseInfo, clang::CodeGen::TBAAAccessInfo TBAAInfo, bool isInit = false, bool isNontemporal = false)
- public void EmitStoreOfScalar(llvm::Value * value, clang::CodeGen::LValue lvalue, bool isInit = false)
- public void EmitStoreThroughBitfieldLValue(clang::CodeGen::RValue Src, clang::CodeGen::LValue Dst, llvm::Value ** Result = nullptr)
- public void EmitStoreThroughExtVectorComponentLValue(clang::CodeGen::RValue Src, clang::CodeGen::LValue Dst)
- public void EmitStoreThroughGlobalRegLValue(clang::CodeGen::RValue Src, clang::CodeGen::LValue Dst)
- public void EmitStoreThroughLValue(clang::CodeGen::RValue Src, clang::CodeGen::LValue Dst, bool isInit = false)
- public clang::CodeGen::LValue EmitStringLiteralLValue(const clang::StringLiteral * E)
- public void EmitSwitchStmt(const clang::SwitchStmt & S)
- public void EmitSynthesizedCXXCopyCtor(clang::CodeGen::Address Dest, clang::CodeGen::Address Src, const clang::Expr * Exp)
- public void EmitSynthesizedCXXCopyCtorCall(const clang::CXXConstructorDecl * D, clang::CodeGen::Address This, clang::CodeGen::Address Src, const clang::CXXConstructExpr * E)
- public llvm::Value * EmitSystemZBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- public llvm::Value * EmitTargetBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E, clang::CodeGen::ReturnValueSlot ReturnValue)
- public llvm::Value * EmitToMemory(llvm::Value * Value, clang::QualType Ty)
- public llvm::CallInst * EmitTrapCall(llvm::Intrinsic::ID IntrID)
- public void EmitTrapCheck(llvm::Value * Checked, clang::CodeGen::SanitizerHandler CheckHandlerID)
- public void EmitTypeCheck(clang::CodeGen::CodeGenFunction::TypeCheckKind TCK, clang::SourceLocation Loc, llvm::Value * V, clang::QualType Type, clang::CharUnits Alignment = CharUnits::Zero(), clang::SanitizerSet SkippedChecks = clang::SanitizerSet(), llvm::Value * ArraySize = nullptr)
- public void EmitTypeMetadataCodeForVCall(const clang::CXXRecordDecl * RD, llvm::Value * VTable, clang::SourceLocation Loc)
- public clang::CodeGen::LValue EmitUnaryOpLValue(const clang::UnaryOperator * E)
- public void EmitUnreachable(clang::SourceLocation Loc)
- public clang::CodeGen::LValue EmitUnsupportedLValue(const clang::Expr * E, const char * Name)
- public clang::CodeGen::RValue EmitUnsupportedRValue(const clang::Expr * E, const char * Name)
- public clang::CodeGen::Address EmitVAArg(clang::VAArgExpr * VE, clang::CodeGen::Address & VAListAddr)
- public clang::CodeGen::LValue EmitVAArgExprLValue(const clang::VAArgExpr * E)
- public clang::CodeGen::Address EmitVAListRef(const clang::Expr * E)
- public llvm::Value * EmitVAStartEnd(llvm::Value * ArgValue, bool IsStart)
- public void EmitVTableAssumptionLoad(const clang::CodeGen::CodeGenFunction::VPtr & vptr, clang::CodeGen::Address This)
- public void EmitVTableAssumptionLoads(const clang::CXXRecordDecl * ClassDecl, clang::CodeGen::Address This)
- public void EmitVTablePtrCheck(const clang::CXXRecordDecl * RD, llvm::Value * VTable, clang::CodeGen::CodeGenFunction::CFITypeCheckKind TCK, clang::SourceLocation Loc)
- public void EmitVTablePtrCheckForCall(const clang::CXXRecordDecl * RD, llvm::Value * VTable, clang::CodeGen::CodeGenFunction::CFITypeCheckKind TCK, clang::SourceLocation Loc)
- public void EmitVTablePtrCheckForCast(clang::QualType T, clang::CodeGen::Address Derived, bool MayBeNull, clang::CodeGen::CodeGenFunction::CFITypeCheckKind TCK, clang::SourceLocation Loc)
- public llvm::Value * EmitVTableTypeCheckedLoad(const clang::CXXRecordDecl * RD, llvm::Value * VTable, llvm::Type * VTableTy, uint64_t VTableByteOffset)
- public void EmitVarAnnotations(const clang::VarDecl * D, llvm::Value * V)
- public void EmitVarDecl(const clang::VarDecl & D)
- public void EmitVariablyModifiedType(clang::QualType Ty)
- public llvm::Value * EmitWebAssemblyBuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- public void EmitWhileStmt(const clang::WhileStmt & S, ArrayRef<const clang::Attr *> Attrs = None)
- public llvm::Value * EmitX86BuiltinExpr(unsigned int BuiltinID, const clang::CallExpr * E)
- private llvm::Value * EmitX86CpuInit()
- private llvm::Value * EmitX86CpuIs(const clang::CallExpr * E)
- private llvm::Value * EmitX86CpuIs(llvm::StringRef CPUStr)
- private llvm::Value * EmitX86CpuSupports(uint64_t Mask)
- private llvm::Value * EmitX86CpuSupports(ArrayRef<llvm::StringRef> FeatureStrs)
- private llvm::Value * EmitX86CpuSupports(const clang::CallExpr * E)
- public void EnsureInsertPoint()
- public void EnterCXXTryStmt(const clang::CXXTryStmt & S, bool IsFnTryBlock = false)
- public void EnterDtorCleanups(const clang::CXXDestructorDecl * Dtor, clang::CXXDtorType Type)
- public void EnterSEHTryStmt(const clang::SEHTryStmt & S)
- public void ErrorUnsupported(const clang::Stmt * S, const char * Type)
- public llvm::Value * EvaluateExprAsBool(const clang::Expr * E)
- public void ExitCXXTryStmt(const clang::CXXTryStmt & S, bool IsFnTryBlock = false)
- public void ExitSEHTryStmt(const clang::SEHTryStmt & S)
- private void ExpandTypeFromArgs(clang::QualType Ty, clang::CodeGen::LValue Dst, llvm::Function::arg_iterator & AI)
- private void ExpandTypeToArgs(clang::QualType Ty, clang::CodeGen::CallArg Arg, llvm::FunctionType * IRFuncTy, SmallVectorImpl<llvm::Value *> & IRCallArgs, unsigned int & IRCallArgPos)
- public void FinishFunction(clang::SourceLocation EndLoc = clang::SourceLocation())
- public void FinishThunk()
- private llvm::Value * FormResolverCondition(const clang::CodeGen::CodeGenFunction::MultiVersionResolverOption & RO)
- public llvm::Function * GenerateBlockFunction(clang::GlobalDecl GD, const clang::CodeGen::CGBlockInfo & Info, const clang::CodeGen::CodeGenFunction::DeclMapTy & ldm, bool IsLambdaConversionToBlock, bool BuildGlobalBlock)
- public void GenerateCXXGlobalCleanUpFunc(llvm::Function * Fn, ArrayRef<std::tuple<llvm::FunctionType *, llvm::WeakTrackingVH, llvm::Constant *>> DtorsOrStermFinalizers)
- public void GenerateCXXGlobalInitFunc(llvm::Function * Fn, ArrayRef<llvm::Function *> CXXThreadLocals, clang::CodeGen::ConstantAddress Guard = ConstantAddress::invalid())
- public void GenerateCXXGlobalVarDeclInitFunc(llvm::Function * Fn, const clang::VarDecl * D, llvm::GlobalVariable * Addr, bool PerformInit)
- public clang::CodeGen::Address GenerateCapturedStmtArgument(const clang::CapturedStmt & S)
- public llvm::Function * GenerateCapturedStmtFunction(const clang::CapturedStmt & S)
- public void GenerateCode(clang::GlobalDecl GD, llvm::Function * Fn, const clang::CodeGen::CGFunctionInfo & FnInfo)
- public llvm::Constant * GenerateCopyHelperFunction(const clang::CodeGen::CGBlockInfo & blockInfo)
- public llvm::Constant * GenerateDestroyHelperFunction(const clang::CodeGen::CGBlockInfo & blockInfo)
- public llvm::Constant * GenerateObjCAtomicGetterCopyHelperFunction(const clang::ObjCPropertyImplDecl * PID)
- public llvm::Constant * GenerateObjCAtomicSetterCopyHelperFunction(const clang::ObjCPropertyImplDecl * PID)
- public void GenerateObjCCtorDtorMethod(clang::ObjCImplementationDecl * IMP, clang::ObjCMethodDecl * MD, bool ctor)
- public void GenerateObjCGetter(clang::ObjCImplementationDecl * IMP, const clang::ObjCPropertyImplDecl * PID)
- public void GenerateObjCMethod(const clang::ObjCMethodDecl * OMD)
- public void GenerateObjCSetter(clang::ObjCImplementationDecl * IMP, const clang::ObjCPropertyImplDecl * PID)
- public llvm::Function * GenerateOpenMPCapturedStmtFunction(const clang::CapturedStmt & S, clang::SourceLocation Loc)
- public void GenerateOpenMPCapturedVars(const clang::CapturedStmt & S, SmallVectorImpl<llvm::Value *> & CapturedVars)
- public llvm::Function * GenerateSEHFilterFunction(clang::CodeGen::CodeGenFunction & ParentCGF, const clang::SEHExceptStmt & Except)
- public llvm::Function * GenerateSEHFinallyFunction(clang::CodeGen::CodeGenFunction & ParentCGF, const clang::SEHFinallyStmt & Finally)
- public llvm::Function * GenerateVarArgsThunk(llvm::Function * Fn, const clang::CodeGen::CGFunctionInfo & FnInfo, clang::GlobalDecl GD, const clang::ThunkInfo & Thunk)
- public clang::CodeGen::Address GetAddrOfBlockDecl(const clang::VarDecl * var)
- public llvm::BlockAddress * GetAddrOfLabel(const clang::LabelDecl * L)
- public clang::CodeGen::Address GetAddrOfLocalVar(const clang::VarDecl * VD)
- public clang::CodeGen::Address GetAddressOfBaseClass(clang::CodeGen::Address Value, const clang::CXXRecordDecl * Derived, CastExpr::path_const_iterator PathBegin, CastExpr::path_const_iterator PathEnd, bool NullCheckValue, clang::SourceLocation Loc)
- public clang::CodeGen::Address GetAddressOfDerivedClass(clang::CodeGen::Address Value, const clang::CXXRecordDecl * Derived, CastExpr::path_const_iterator PathBegin, CastExpr::path_const_iterator PathEnd, bool NullCheckValue)
- public clang::CodeGen::Address GetAddressOfDirectBaseInCompleteClass(clang::CodeGen::Address Value, const clang::CXXRecordDecl * Derived, const clang::CXXRecordDecl * Base, bool BaseIsVirtual)
- public llvm::BasicBlock * GetIndirectGotoBlock()
- public clang::CodeGen::RValue GetUndefRValue(clang::QualType Ty)
- public llvm::Value * GetVTTParameter(clang::GlobalDecl GD, bool ForVirtualBase, bool Delegating)
- public llvm::Value * GetVTablePtr(clang::CodeGen::Address This, llvm::Type * VTableTy, const clang::CXXRecordDecl * VTableClass)
- private llvm::Value * GetValueForARMHint(unsigned int BuiltinID)
- public bool HaveInsertPoint() const
- public clang::CodeGen::LValue InitCapturedStruct(const clang::CapturedStmt & S)
- public void InitializeVTablePointer(const clang::CodeGen::CodeGenFunction::VPtr & vptr)
- public void InitializeVTablePointers(const clang::CXXRecordDecl * ClassDecl)
- public void InsertHelper(llvm::Instruction * I, const llvm::Twine & Name, llvm::BasicBlock * BB, llvm::BasicBlock::iterator InsertPt) const
- public static bool IsConstructorDelegationValid(const clang::CXXConstructorDecl * Ctor)
- public static bool IsWrappedCXXThis(const clang::Expr * E)
- public bool LValueIsSuitableForInlineAtomic(clang::CodeGen::LValue Src)
- public clang::CodeGen::Address LoadBlockStruct()
- public llvm::Value * LoadCXXThis()
- public clang::CodeGen::Address LoadCXXThisAddress()
- public llvm::Value * LoadCXXVTT()
- public llvm::Value * LoadObjCSelf()
- public llvm::Value * LoadPassedObjectSize(const clang::Expr * E, clang::QualType EltTy)
- public llvm::Function * LookupNeonLLVMIntrinsic(unsigned int IntrinsicID, unsigned int Modifier, llvm::Type * ArgTy, const clang::CallExpr * E)
- public clang::CodeGen::LValue MakeAddrLValue(clang::CodeGen::Address Addr, clang::QualType T, clang::CodeGen::LValueBaseInfo BaseInfo, clang::CodeGen::TBAAAccessInfo TBAAInfo)
- public clang::CodeGen::LValue MakeAddrLValue(clang::CodeGen::Address Addr, clang::QualType T, clang::CodeGen::AlignmentSource Source = AlignmentSource::Type)
- public clang::CodeGen::LValue MakeAddrLValue(llvm::Value * V, clang::QualType T, clang::CharUnits Alignment, clang::CodeGen::AlignmentSource Source = AlignmentSource::Type)
- public clang::CodeGen::LValue MakeAddrLValueWithoutTBAA(clang::CodeGen::Address Addr, clang::QualType T, clang::CodeGen::AlignmentSource Source = AlignmentSource::Type)
- public clang::CodeGen::LValue MakeNaturalAlignAddrLValue(llvm::Value * V, clang::QualType T)
- public clang::CodeGen::LValue MakeNaturalAlignPointeeAddrLValue(llvm::Value * V, clang::QualType T)
- public void PopCleanupBlock(bool FallThroughIsBranchThrough = false)
- public void PopCleanupBlocks(EHScopeStack::stable_iterator OldCleanupStackSize, std::initializer_list<llvm::Value **> ValuesToReload = {})
- public void PopCleanupBlocks(EHScopeStack::stable_iterator OldCleanupStackSize, size_t OldLifetimeExtendedStackSize, std::initializer_list<llvm::Value **> ValuesToReload = {})
- public bool ProcessOrderScopeAMDGCN(llvm::Value * Order, llvm::Value * Scope, llvm::AtomicOrdering & AO, llvm::SyncScope::ID & SSID)
- public void PushDestructorCleanup(clang::QualType T, clang::CodeGen::Address Addr)
- public void PushDestructorCleanup(const clang::CXXDestructorDecl * Dtor, clang::QualType T, clang::CodeGen::Address Addr)
- public void ResolveBranchFixups(llvm::BasicBlock * Target)
- public llvm::Type * SVEBuiltinMemEltTy(const clang::SVETypeFlags & TypeFlags)
- public void SetFPAccuracy(llvm::Value * Val, float Accuracy)
- public void SetFastMathFlags(clang::FPOptions FPFeatures)
- public bool ShouldEmitVTableTypeCheckedLoad(const clang::CXXRecordDecl * RD)
- public bool ShouldInstrumentFunction()
- public static bool ShouldNullCheckClassCastValue(const clang::CastExpr * Cast)
- public bool ShouldSkipSanitizerInstrumentation()
- public bool ShouldXRayInstrumentFunction() const
- public void SimplifyForwardingBlocks(llvm::BasicBlock * BB)
- public llvm::DebugLoc SourceLocToDebugLoc(clang::SourceLocation Location)
- public void StartFunction(clang::GlobalDecl GD, clang::QualType RetTy, llvm::Function * Fn, const clang::CodeGen::CGFunctionInfo & FnInfo, const clang::CodeGen::FunctionArgList & Args, clang::SourceLocation Loc = clang::SourceLocation(), clang::SourceLocation StartLoc = clang::SourceLocation())
- public void StartObjCMethod(const clang::ObjCMethodDecl * MD, const clang::ObjCContainerDecl * CD)
- public void StartThunk(llvm::Function * Fn, clang::GlobalDecl GD, const clang::CodeGen::CGFunctionInfo & FnInfo, bool IsUnprototyped)
- public clang::QualType TypeOfSelfObject()
- public void VolatilizeTryBlocks(llvm::BasicBlock * BB, llvm::SmallPtrSet<llvm::BasicBlock *, 10> & V)
- private clang::CodeGen::BlockByrefHelpers * buildByrefHelpers(llvm::StructType & byrefType, const clang::CodeGen::CodeGenFunction::AutoVarEmission & emission)
- public void callCStructCopyAssignmentOperator(clang::CodeGen::LValue Dst, clang::CodeGen::LValue Src)
- public void callCStructCopyConstructor(clang::CodeGen::LValue Dst, clang::CodeGen::LValue Src)
- public void callCStructDefaultConstructor(clang::CodeGen::LValue Dst)
- public void callCStructDestructor(clang::CodeGen::LValue Dst)
- public void callCStructMoveAssignmentOperator(clang::CodeGen::LValue Dst, clang::CodeGen::LValue Src)
- public void callCStructMoveConstructor(clang::CodeGen::LValue Dst, clang::CodeGen::LValue Src)
- public bool checkIfFunctionMustProgress()
- public bool checkIfLoopMustProgress(bool HasConstantCond)
- public void checkTargetFeatures(clang::SourceLocation Loc, const clang::FunctionDecl * TargetDecl)
- public void checkTargetFeatures(const clang::CallExpr * E, const clang::FunctionDecl * TargetDecl)
- public static bool containsBreak(const clang::Stmt * S)
- public clang::CodeGen::RValue convertTempToRValue(clang::CodeGen::Address addr, clang::QualType type, clang::SourceLocation Loc)
- public llvm::Function * createAtExitStub(const clang::VarDecl & VD, llvm::FunctionCallee Dtor, llvm::Constant * Addr)
- public llvm::BasicBlock * createBasicBlock(const llvm::Twine & name = "", llvm::Function * parent = nullptr, llvm::BasicBlock * before = nullptr)
- public clang::CodeGen::Address createCleanupActiveFlag()
- private llvm::MDNode * createProfileWeights(uint64_t TrueCount, uint64_t FalseCount) const
- private llvm::MDNode * createProfileWeights(ArrayRef<uint64_t> Weights) const
- private llvm::MDNode * createProfileWeightsForLoop(const clang::Stmt * Cond, uint64_t LoopCount) const
- public llvm::Function * createTLSAtExitStub(const clang::VarDecl & VD, llvm::FunctionCallee Dtor, llvm::Constant * Addr, llvm::FunctionCallee & AtExit)
- public bool currentFunctionUsesSEHTry() const
- public static bool cxxDestructorCanThrow(clang::QualType T)
- public void defaultInitNonTrivialCStructVar(clang::CodeGen::LValue Dst)
- private void deferPlaceholderReplacement(llvm::Instruction * Old, llvm::Value * New)
- public static void destroyARCStrongImprecise(clang::CodeGen::CodeGenFunction &, clang::CodeGen::Address, clang::QualType)
- public static void destroyARCStrongPrecise(clang::CodeGen::CodeGenFunction &, clang::CodeGen::Address, clang::QualType)
- public static void destroyARCWeak(clang::CodeGen::CodeGenFunction &, clang::CodeGen::Address, clang::QualType)
- public static void destroyCXXObject(clang::CodeGen::CodeGenFunction &, clang::CodeGen::Address, clang::QualType)
- public static void destroyNonTrivialCStruct(clang::CodeGen::CodeGenFunction &, clang::CodeGen::Address, clang::QualType)
- public void disableDebugInfo()
- public void emitARCCopyAssignWeak(clang::QualType Ty, clang::CodeGen::Address DstAddr, clang::CodeGen::Address SrcAddr)
- public static void emitARCIntrinsicUse(clang::CodeGen::CodeGenFunction &, clang::CodeGen::Address, clang::QualType)
- public void emitARCMoveAssignWeak(clang::QualType Ty, clang::CodeGen::Address DstAddr, clang::CodeGen::Address SrcAddr)
- public clang::CodeGen::Address emitAddrOfImagComponent(clang::CodeGen::Address complex, clang::QualType complexType)
- public clang::CodeGen::Address emitAddrOfRealComponent(clang::CodeGen::Address complex, clang::QualType complexType)
- public void emitAlignmentAssumption(llvm::Value * PtrValue, clang::QualType Ty, clang::SourceLocation Loc, clang::SourceLocation AssumptionLoc, llvm::Value * Alignment, llvm::Value * OffsetValue = nullptr)
- public void emitAlignmentAssumption(llvm::Value * PtrValue, const clang::Expr * E, clang::SourceLocation AssumptionLoc, llvm::Value * Alignment, llvm::Value * OffsetValue = nullptr)
- public void emitAlignmentAssumptionCheck(llvm::Value * Ptr, clang::QualType Ty, clang::SourceLocation Loc, clang::SourceLocation AssumptionLoc, llvm::Value * Alignment, llvm::Value * OffsetValue, llvm::Value * TheCheck, llvm::Instruction * Assumption)
- public void emitArrayDestroy(llvm::Value * begin, llvm::Value * end, clang::QualType elementType, clang::CharUnits elementAlign, clang::CodeGen::CodeGenFunction::Destroyer * destroyer, bool checkZeroLength, bool useEHCleanup)
- public llvm::Value * emitArrayLength(const clang::ArrayType * arrayType, clang::QualType & baseType, clang::CodeGen::Address & addr)
- public void emitAutoVarTypeCleanup(const clang::CodeGen::CodeGenFunction::AutoVarEmission & emission, QualType::DestructionKind dtorKind)
- public clang::CodeGen::Address emitBlockByrefAddress(clang::CodeGen::Address baseAddr, const clang::CodeGen::BlockByrefInfo & info, bool followForward, const llvm::Twine & name)
- public clang::CodeGen::Address emitBlockByrefAddress(clang::CodeGen::Address baseAddr, const clang::VarDecl * V, bool followForward = true)
- public llvm::Value * emitBoolVecConversion(llvm::Value * SrcVec, unsigned int NumElementsDst, const llvm::Twine & Name = "")
- public clang::CodeGen::RValue emitBuiltinOSLogFormat(const clang::CallExpr & E)
- private llvm::Value * emitBuiltinObjectSize(const clang::Expr * E, unsigned int Type, llvm::IntegerType * ResType, llvm::Value * EmittedE, bool IsDynamic)
- public void emitByrefStructureInit(const clang::CodeGen::CodeGenFunction::AutoVarEmission & emission)
- private llvm::Value * emitCondLikelihoodViaExpectIntrinsic(llvm::Value * Cond, Stmt::Likelihood LH)
- public void emitDestroy(clang::CodeGen::Address addr, clang::QualType type, clang::CodeGen::CodeGenFunction::Destroyer * destroyer, bool useEHCleanupForArray)
- public void emitImplicitAssignmentOperatorBody(clang::CodeGen::FunctionArgList & Args)
- public void emitOMPSimpleStore(clang::CodeGen::LValue LVal, clang::CodeGen::RValue RVal, clang::QualType RValTy, clang::SourceLocation Loc)
- public clang::CodeGen::RValue emitRotate(const clang::CallExpr * E, bool IsRotateRight)
- public llvm::Value * emitScalarConstant(const clang::CodeGen::CodeGenFunction::ConstantEmission & Constant, clang::Expr * E)
- private void emitZeroOrPatternForAutoVarInit(clang::QualType type, const clang::VarDecl & D, clang::CodeGen::Address Loc)
- public void enableDebugInfo()
- public void enterByrefCleanup(clang::CodeGen::CleanupKind Kind, clang::CodeGen::Address Addr, clang::CodeGen::BlockFieldFlags Flags, bool LoadBlockVarAddr, bool CanThrow)
- private llvm::Value * evaluateOrEmitBuiltinObjectSize(const clang::Expr * E, unsigned int Type, llvm::IntegerType * ResType, llvm::Value * EmittedE, bool IsDynamic)
- public llvm::Function * generateBuiltinOSLogHelperFunction(const analyze_os_log::OSLogBufferLayout & Layout, clang::CharUnits BufferAlignment)
- public llvm::Function * generateDestroyHelper(clang::CodeGen::Address addr, clang::QualType type, clang::CodeGen::CodeGenFunction::Destroyer * destroyer, bool useEHCleanupForArray, const clang::VarDecl * VD)
- public void generateObjCGetterBody(const clang::ObjCImplementationDecl * classImpl, const clang::ObjCPropertyImplDecl * propImpl, const clang::ObjCMethodDecl * GetterMothodDecl, llvm::Constant * AtomicHelperFn)
- public void generateObjCSetterBody(const clang::ObjCImplementationDecl * classImpl, const clang::ObjCPropertyImplDecl * propImpl, llvm::Constant * AtomicHelperFn)
- public void generateThunk(llvm::Function * Fn, const clang::CodeGen::CGFunctionInfo & FnInfo, clang::GlobalDecl GD, const clang::ThunkInfo & Thunk, bool IsUnprototyped)
- public clang::CodeGen::CleanupKind getARCCleanupKind()
- public static unsigned int getAccessedFieldNo(unsigned int Idx, const llvm::Constant * Elts)
- public llvm::Value * getArrayInitIndex()
- public const clang::CodeGen::BlockByrefInfo & getBlockByrefInfo(const clang::VarDecl * var)
- public SmallVector<llvm::OperandBundleDef, 1> getBundlesForFunclet(llvm::Value * Callee)
- public clang::CodeGen::CleanupKind getCleanupKind(QualType::DestructionKind kind)
- public clang::ASTContext & getContext() const
- public uint64_t getCurrentProfileCount()
- public clang::CodeGen::CGDebugInfo * getDebugInfo()
- public unsigned int getDebugInfoFIndex(const clang::RecordDecl * Rec, unsigned int FieldIndex)
- public clang::CodeGen::CodeGenFunction::Destroyer * getDestroyer(QualType::DestructionKind destructionKind)
- public llvm::BasicBlock * getEHDispatchBlock(EHScopeStack::stable_iterator scope)
- public llvm::BasicBlock * getEHResumeBlock(bool isCleanup)
- public clang::CodeGen::Address getEHSelectorSlot()
- public llvm::Type * getEltType(const clang::SVETypeFlags & TypeFlags)
- public static clang::CodeGen::TypeEvaluationKind getEvaluationKind(clang::QualType T)
- public llvm::Value * getExceptionFromSlot()
- public clang::CodeGen::Address getExceptionSlot()
- public llvm::BasicBlock * getFuncletEHDispatchBlock(EHScopeStack::stable_iterator scope)
- public llvm::BasicBlock * getInvokeDest()
- public llvm::BasicBlock * getInvokeDestImpl()
- public clang::CodeGen::CodeGenFunction::JumpDest getJumpDestForLabel(const clang::LabelDecl * S)
- public clang::CodeGen::CodeGenFunction::JumpDest getJumpDestInCurrentScope(llvm::BasicBlock * Target)
- public clang::CodeGen::CodeGenFunction::JumpDest getJumpDestInCurrentScope(llvm::StringRef Name = llvm::StringRef())
- public llvm::LLVMContext & getLLVMContext()
- public const clang::LangOptions & getLangOpts() const
- public static std::string getNonTrivialCopyConstructorStr(clang::QualType QT, clang::CharUnits Alignment, bool IsVolatile, clang::ASTContext & Ctx)
- public static std::string getNonTrivialDestructorStr(clang::QualType QT, clang::CharUnits Alignment, bool IsVolatile, clang::ASTContext & Ctx)
- public clang::CodeGen::Address getNormalCleanupDestSlot()
- public clang::CodeGen::CodeGenFunction::JumpDest getOMPCancelDestination(clang::OpenMPDirectiveKind Kind)
- public clang::CodeGen::LValue getOrCreateOpaqueLValueMapping(const clang::OpaqueValueExpr * e)
- public clang::CodeGen::RValue getOrCreateOpaqueRValueMapping(const clang::OpaqueValueExpr * e)
- public AggValueSlot::Overlap_t getOverlapForBaseInit(const clang::CXXRecordDecl * RD, const clang::CXXRecordDecl * BaseRD, bool IsVirtual)
- public AggValueSlot::Overlap_t getOverlapForFieldInit(const clang::FieldDecl * FD)
- public AggValueSlot::Overlap_t getOverlapForReturnValue()
- public llvm::Instruction * getPostAllocaInsertPoint()
- public uint64_t getProfileCount(const clang::Stmt * S)
- private llvm::MDNode * getRangeForLoadFromType(clang::QualType Ty)
- public SmallVector<llvm::Type *, 2> getSVEOverloadTypes(const clang::SVETypeFlags & TypeFlags, llvm::Type * ReturnType, ArrayRef<llvm::Value *> Ops)
- public llvm::ScalableVectorType * getSVEPredType(const clang::SVETypeFlags & TypeFlags)
- public llvm::ScalableVectorType * getSVEType(const clang::SVETypeFlags & TypeFlags)
- public llvm::Value * getSelectorFromSlot()
- public const clang::TargetInfo & getTarget() const
- public const clang::CodeGen::TargetCodeGenInfo & getTargetHooks() const
- public llvm::BasicBlock * getTerminateFunclet()
- public llvm::BasicBlock * getTerminateHandler()
- public llvm::BasicBlock * getTerminateLandingPad()
- public llvm::Value * getTypeSize(clang::QualType Ty)
- public clang::CodeGen::CodeGenTypes & getTypes() const
- public llvm::BasicBlock * getUnreachableBlock()
- public clang::CodeGen::CodeGenFunction::VlaSizePair getVLAElements1D(const clang::VariableArrayType * vla)
- public clang::CodeGen::CodeGenFunction::VlaSizePair getVLAElements1D(clang::QualType vla)
- public clang::CodeGen::CodeGenFunction::VlaSizePair getVLASize(clang::QualType vla)
- public clang::CodeGen::CodeGenFunction::VlaSizePair getVLASize(const clang::VariableArrayType * vla)
- public void getVTablePointers(clang::BaseSubobject Base, const clang::CXXRecordDecl * NearestVBase, clang::CharUnits OffsetFromNearestVBase, bool BaseIsNonVirtualPrimaryBase, const clang::CXXRecordDecl * VTableClass, clang::CodeGen::CodeGenFunction::VisitedVirtualBasesSetTy & VBases, clang::CodeGen::CodeGenFunction::VPtrsVector & vptrs)
- public clang::CodeGen::CodeGenFunction::VPtrsVector getVTablePointers(const clang::CXXRecordDecl * VTableClass)
- private clang::QualType getVarArgType(const clang::Expr * Arg)
- public static bool hasAggregateEvaluationKind(clang::QualType T)
- public bool hasLabelBeenSeenInCurrentScope() const
- public static bool hasScalarEvaluationKind(clang::QualType T)
- public bool hasVolatileMember(clang::QualType T)
- public void incrementProfileCounter(const clang::Stmt * S, llvm::Value * StepV = nullptr)
- public void initFullExprCleanup()
- public void initFullExprCleanupWithFlag(clang::CodeGen::Address ActiveFlag)
- public bool isCleanupPadScope() const
- public bool isCoroutine() const
- public bool isInConditionalBranch() const
- public static bool isInstrumentedCondition(const clang::Expr * C)
- public static bool isNullPointerAllowed(clang::CodeGen::CodeGenFunction::TypeCheckKind TCK)
- public bool isObviouslyBranchWithoutCleanups(clang::CodeGen::CodeGenFunction::JumpDest Dest) const
- public bool isSEHTryScope() const
- public bool isTrivialInitializer(const clang::Expr * Init)
- public static bool isVptrCheckRequired(clang::CodeGen::CodeGenFunction::TypeCheckKind TCK, clang::QualType Ty)
- public void markAsIgnoreThreadCheckingAtRuntime(llvm::Function * Fn)
- public static bool mightAddDeclToScope(const clang::Stmt * S)
- public bool needsEHCleanup(QualType::DestructionKind kind)
- public void popCatchScope()
- public void processInReduction(const clang::OMPExecutableDirective & S, clang::CodeGen::OMPTaskDataTy & Data, clang::CodeGen::CodeGenFunction & CGF, const clang::CapturedStmt * CS, clang::CodeGen::CodeGenFunction::OMPPrivateScope & Scope)
- public clang::CodeGen::CodeGenFunction::PeepholeProtection protectFromPeepholes(clang::CodeGen::RValue rvalue)
- public void pushCallObjectDeleteCleanup(const clang::FunctionDecl * OperatorDelete, llvm::Value * CompletePtr, clang::QualType ElementType)
- public template <class T, class... As>void pushCleanupAfterFullExpr(clang::CodeGen::CleanupKind Kind, As... A)
- public template <class T, class... As>void pushCleanupAfterFullExprWithActiveFlag(clang::CodeGen::CleanupKind Kind, clang::CodeGen::Address ActiveFlag, As... A)
- public void pushDestroy(QualType::DestructionKind dtorKind, clang::CodeGen::Address addr, clang::QualType type)
- public void pushDestroy(clang::CodeGen::CleanupKind kind, clang::CodeGen::Address addr, clang::QualType type, clang::CodeGen::CodeGenFunction::Destroyer * destroyer, bool useEHCleanupForArray)
- public void pushEHDestroy(QualType::DestructionKind dtorKind, clang::CodeGen::Address addr, clang::QualType type)
- public template <class T, class... As>void pushFullExprCleanup(clang::CodeGen::CleanupKind kind, As... A)
- public void pushIrregularPartialArrayCleanup(llvm::Value * arrayBegin, clang::CodeGen::Address arrayEndPointer, clang::QualType elementType, clang::CharUnits elementAlignment, clang::CodeGen::CodeGenFunction::Destroyer * destroyer)
- public void pushLifetimeExtendedDestroy(clang::CodeGen::CleanupKind kind, clang::CodeGen::Address addr, clang::QualType type, clang::CodeGen::CodeGenFunction::Destroyer * destroyer, bool useEHCleanupForArray)
- public void pushRegularPartialArrayCleanup(llvm::Value * arrayBegin, llvm::Value * arrayEnd, clang::QualType elementType, clang::CharUnits elementAlignment, clang::CodeGen::CodeGenFunction::Destroyer * destroyer)
- public void pushSEHCleanup(clang::CodeGen::CleanupKind kind, llvm::Function * FinallyFunc)
- public void pushStackRestore(clang::CodeGen::CleanupKind kind, clang::CodeGen::Address SPMem)
- public clang::CodeGen::Address recoverAddrOfEscapedLocal(clang::CodeGen::CodeGenFunction & ParentCGF, clang::CodeGen::Address ParentVar, llvm::Value * ParentFP)
- public void registerGlobalDtorWithAtExit(llvm::Constant * dtorStub)
- public void registerGlobalDtorWithAtExit(const clang::VarDecl & D, llvm::FunctionCallee fn, llvm::Constant * addr)
- private bool requiresReturnValueCheck() const
- private bool requiresReturnValueNullabilityCheck() const
- public bool sanitizePerformTypeCheck() const
- public template <class T>typename DominatingValue<T>::saved_type saveValueInCond(T value)
- private void setAddrOfLocalVar(const clang::VarDecl * VD, clang::CodeGen::Address Addr)
- public void setBeforeOutermostConditional(llvm::Value * value, clang::CodeGen::Address addr)
- public void setBlockContextParameter(const clang::ImplicitParamDecl * D, unsigned int argNum, llvm::Value * ptr)
- public void setCurrentProfileCount(uint64_t Count)
- public bool shouldUseFusedARCCalls()
- public void startOutlinedSEHHelper(clang::CodeGen::CodeGenFunction & ParentCGF, bool IsFilter, const clang::Stmt * OutlinedStmt)
- public clang::CodeGen::CodeGenFunction::ConstantEmission tryEmitAsConstant(const clang::MemberExpr * ME)
- public clang::CodeGen::CodeGenFunction::ConstantEmission tryEmitAsConstant(clang::DeclRefExpr * refExpr)
- public void unprotectFromPeepholes(clang::CodeGen::CodeGenFunction::PeepholeProtection protection)
- public llvm::Value * unregisterGlobalDtorWithUnAtExit(llvm::Constant * dtorStub)
- public llvm::Value * vectorWrapScalar16(llvm::Value * Op)
- public ~CodeGenFunction()
Inherited from CodeGenTypeCache:
- public getASTAllocaAddressSpace
- public getIntAlign
- public getIntSize
- public getPointerAlign
- public getPointerSize
- public getRuntimeCC
- public getSizeAlign
- public getSizeSize
Methods
¶void ActivateCleanupBlock(
EHScopeStack::stable_iterator Cleanup,
llvm::Instruction* DominatingIP)
void ActivateCleanupBlock(
EHScopeStack::stable_iterator Cleanup,
llvm::Instruction* DominatingIP)
Description
ActivateCleanupBlock - Activates an initially-inactive cleanup. Cannot be used to resurrect a deactivated cleanup.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:867
Parameters
- EHScopeStack::stable_iterator Cleanup
- llvm::Instruction* DominatingIP
- - An instruction which is known to dominate the current IP (if set) and which lies along all paths of execution between the current IP and the the point at which the cleanup comes into scope.
¶llvm::GlobalVariable*
AddInitializerToStaticVarDecl(
const clang::VarDecl& D,
llvm::GlobalVariable* GV)
llvm::GlobalVariable*
AddInitializerToStaticVarDecl(
const clang::VarDecl& D,
llvm::GlobalVariable* GV)
Description
AddInitializerToStaticVarDecl - Add the initializer for 'D' to the global variable that has already been created for it. If the initializer has a different type than GV does, this may free GV and return a different one. Otherwise it just returns GV.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4419
Parameters
- const clang::VarDecl& D
- llvm::GlobalVariable* GV
¶void AddObjCARCExceptionMetadata(
llvm::Instruction* Inst)
void AddObjCARCExceptionMetadata(
llvm::Instruction* Inst)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4806
Parameters
- llvm::Instruction* Inst
¶bool AlwaysEmitXRayCustomEvents() const
bool AlwaysEmitXRayCustomEvents() const
Description
AlwaysEmitXRayCustomEvents - Return true if we must unconditionally emit XRay custom event handling calls.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2358
¶bool AlwaysEmitXRayTypedEvents() const
bool AlwaysEmitXRayTypedEvents() const
Description
AlwaysEmitXRayTypedEvents - Return true if clang must unconditionally emit XRay typed event handling calls.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2362
¶clang::CodeGen::CGCallee
BuildAppleKextVirtualCall(
const clang::CXXMethodDecl* MD,
clang::NestedNameSpecifier* Qual,
llvm::Type* Ty)
clang::CodeGen::CGCallee
BuildAppleKextVirtualCall(
const clang::CXXMethodDecl* MD,
clang::NestedNameSpecifier* Qual,
llvm::Type* Ty)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4053
Parameters
- const clang::CXXMethodDecl* MD
- clang::NestedNameSpecifier* Qual
- llvm::Type* Ty
¶clang::CodeGen::CGCallee
BuildAppleKextVirtualDestructorCall(
const clang::CXXDestructorDecl* DD,
clang::CXXDtorType Type,
const clang::CXXRecordDecl* RD)
clang::CodeGen::CGCallee
BuildAppleKextVirtualDestructorCall(
const clang::CXXDestructorDecl* DD,
clang::CXXDtorType Type,
const clang::CXXRecordDecl* RD)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4057
Parameters
- const clang::CXXDestructorDecl* DD
- clang::CXXDtorType Type
- const clang::CXXRecordDecl* RD
¶void BuildBlockRelease(
llvm::Value* DeclPtr,
clang::CodeGen::BlockFieldFlags flags,
bool CanThrow)
void BuildBlockRelease(
llvm::Value* DeclPtr,
clang::CodeGen::BlockFieldFlags flags,
bool CanThrow)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2149
Parameters
- llvm::Value* DeclPtr
- clang::CodeGen::BlockFieldFlags flags
- bool CanThrow
¶clang::QualType BuildFunctionArgList(
clang::GlobalDecl GD,
clang::CodeGen::FunctionArgList& Args)
clang::QualType BuildFunctionArgList(
clang::GlobalDecl GD,
clang::CodeGen::FunctionArgList& Args)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2192
Parameters
¶llvm::Value* BuildVector(
ArrayRef<llvm::Value*> Ops)
llvm::Value* BuildVector(
ArrayRef<llvm::Value*> Ops)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4244
Parameters
- ArrayRef<llvm::Value*> Ops
¶CodeGenFunction(
const clang::CodeGen::CodeGenFunction&)
CodeGenFunction(
const clang::CodeGen::CodeGenFunction&)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:232
Parameters
¶CodeGenFunction(
clang::CodeGen::CodeGenModule& cgm,
bool suppressNewContext = false)
CodeGenFunction(
clang::CodeGen::CodeGenModule& cgm,
bool suppressNewContext = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1979
Parameters
- clang::CodeGen::CodeGenModule& cgm
- bool suppressNewContext = false
¶bool ConstantFoldsToSimpleInteger(
const clang::Expr* Cond,
bool& Result,
bool AllowLabels = false)
bool ConstantFoldsToSimpleInteger(
const clang::Expr* Cond,
bool& Result,
bool AllowLabels = false)
Description
ConstantFoldsToSimpleInteger - If the specified expression does not fold to a constant, or if it does but contains a label, return false. If it constant folds return true and set the boolean result in Result.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4532
Parameters
- const clang::Expr* Cond
- bool& Result
- bool AllowLabels = false
¶bool ConstantFoldsToSimpleInteger(
const clang::Expr* Cond,
llvm::APSInt& Result,
bool AllowLabels = false)
bool ConstantFoldsToSimpleInteger(
const clang::Expr* Cond,
llvm::APSInt& Result,
bool AllowLabels = false)
Description
ConstantFoldsToSimpleInteger - If the specified expression does not fold to a constant, or if it does but contains a label, return false. If it constant folds return true and set the folded value.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4538
Parameters
- const clang::Expr* Cond
- llvm::APSInt& Result
- bool AllowLabels = false
¶static bool ContainsLabel(
const clang::Stmt* S,
bool IgnoreCaseStmts = false)
static bool ContainsLabel(
const clang::Stmt* S,
bool IgnoreCaseStmts = false)
Description
ContainsLabel - Return true if the statement contains a label in it. If this statement is not executed normally, it not containing a label means that we can just remove the code.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4518
Parameters
- const clang::Stmt* S
- bool IgnoreCaseStmts = false
¶llvm::Type* ConvertType(clang::QualType T)
llvm::Type* ConvertType(clang::QualType T)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2403
Parameters
¶llvm::Type* ConvertType(const clang::TypeDecl* T)
llvm::Type* ConvertType(const clang::TypeDecl* T)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2404
Parameters
- const clang::TypeDecl* T
¶llvm::Type* ConvertTypeForMem(clang::QualType T)
llvm::Type* ConvertTypeForMem(clang::QualType T)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2402
Parameters
¶clang::CodeGen::AggValueSlot CreateAggTemp(
clang::QualType T,
const llvm::Twine& Name = "tmp",
clang::CodeGen::Address* Alloca = nullptr)
clang::CodeGen::AggValueSlot CreateAggTemp(
clang::QualType T,
const llvm::Twine& Name = "tmp",
clang::CodeGen::Address* Alloca = nullptr)
Description
CreateAggTemp - Create a temporary memory object for the given aggregate type.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2612
Parameters
- clang::QualType T
- const llvm::Twine& Name = "tmp"
- clang::CodeGen::Address* Alloca = nullptr
¶clang::CodeGen::Address
CreateDefaultAlignTempAlloca(
llvm::Type* Ty,
const llvm::Twine& Name = "tmp")
clang::CodeGen::Address
CreateDefaultAlignTempAlloca(
llvm::Type* Ty,
const llvm::Twine& Name = "tmp")
Description
CreateDefaultAlignedTempAlloca - This creates an alloca with the default ABI alignment of the given LLVM type. IMPORTANT NOTE: This is *not* generally the right alignment for any given AST type that happens to have been lowered to the given IR type. This should only ever be used for function-local, IR-driven manipulations like saving and restoring a value. Do not hand this address off to arbitrary IRGen routines, and especially do not pass it as an argument to a function that might expect a properly ABI-aligned value.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2583
Parameters
- llvm::Type* Ty
- const llvm::Twine& Name = "tmp"
¶clang::CodeGen::Address CreateIRTemp(
clang::QualType T,
const llvm::Twine& Name = "tmp")
clang::CodeGen::Address CreateIRTemp(
clang::QualType T,
const llvm::Twine& Name = "tmp")
Description
CreateIRTemp - Create a temporary IR object of the given type, with appropriate alignment. This routine should only be used when an temporary value needs to be stored into an alloca (for example, to avoid explicit PHI construction), but the type is the IR type, not the type appropriate for storing in memory. That is, this is exactly equivalent to CreateMemTemp, but calling ConvertType instead of ConvertTypeForMem.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2594
Parameters
- clang::QualType T
- const llvm::Twine& Name = "tmp"
¶clang::CodeGen::Address CreateMemTemp(
clang::QualType T,
clang::CharUnits Align,
const llvm::Twine& Name = "tmp",
clang::CodeGen::Address* Alloca = nullptr)
clang::CodeGen::Address CreateMemTemp(
clang::QualType T,
clang::CharUnits Align,
const llvm::Twine& Name = "tmp",
clang::CodeGen::Address* Alloca = nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2601
Parameters
- clang::QualType T
- clang::CharUnits Align
- const llvm::Twine& Name = "tmp"
- clang::CodeGen::Address* Alloca = nullptr
¶clang::CodeGen::Address CreateMemTemp(
clang::QualType T,
const llvm::Twine& Name = "tmp",
clang::CodeGen::Address* Alloca = nullptr)
clang::CodeGen::Address CreateMemTemp(
clang::QualType T,
const llvm::Twine& Name = "tmp",
clang::CodeGen::Address* Alloca = nullptr)
Description
CreateMemTemp - Create a temporary memory object of the given type, with appropriate alignmen and cast it to the default address space. Returns the original alloca instruction by \p Alloca if it is not nullptr.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2599
Parameters
- clang::QualType T
- const llvm::Twine& Name = "tmp"
- clang::CodeGen::Address* Alloca = nullptr
¶clang::CodeGen::Address CreateMemTempWithoutCast(
clang::QualType T,
clang::CharUnits Align,
const llvm::Twine& Name = "tmp")
clang::CodeGen::Address CreateMemTempWithoutCast(
clang::QualType T,
clang::CharUnits Align,
const llvm::Twine& Name = "tmp")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2607
Parameters
- clang::QualType T
- clang::CharUnits Align
- const llvm::Twine& Name = "tmp"
¶clang::CodeGen::Address CreateMemTempWithoutCast(
clang::QualType T,
const llvm::Twine& Name = "tmp")
clang::CodeGen::Address CreateMemTempWithoutCast(
clang::QualType T,
const llvm::Twine& Name = "tmp")
Description
CreateMemTemp - Create a temporary memory object of the given type, with appropriate alignmen without casting it to the default address space.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2606
Parameters
- clang::QualType T
- const llvm::Twine& Name = "tmp"
¶clang::CodeGen::Address CreateTempAlloca(
llvm::Type* Ty,
clang::CharUnits align,
const llvm::Twine& Name = "tmp",
llvm::Value* ArraySize = nullptr,
clang::CodeGen::Address* Alloca = nullptr)
clang::CodeGen::Address CreateTempAlloca(
llvm::Type* Ty,
clang::CharUnits align,
const llvm::Twine& Name = "tmp",
llvm::Value* ArraySize = nullptr,
clang::CodeGen::Address* Alloca = nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2565
Parameters
- llvm::Type* Ty
- clang::CharUnits align
- const llvm::Twine& Name = "tmp"
- llvm::Value* ArraySize = nullptr
- clang::CodeGen::Address* Alloca = nullptr
¶llvm::AllocaInst* CreateTempAlloca(
llvm::Type* Ty,
const llvm::Twine& Name = "tmp",
llvm::Value* ArraySize = nullptr)
llvm::AllocaInst* CreateTempAlloca(
llvm::Type* Ty,
const llvm::Twine& Name = "tmp",
llvm::Value* ArraySize = nullptr)
Description
CreateTempAlloca - This creates an alloca and inserts it into the entry block if \p ArraySize is nullptr, otherwise inserts it at the current insertion point of the builder. The caller is responsible for setting an appropriate alignment on the alloca. \p ArraySize is the number of array elements to be allocated if it is not nullptr. LangAS::Default is the address space of pointers to local variables and temporaries, as exposed in the source language. In certain configurations, this is not the same as the alloca address space, and a cast is needed to lift the pointer from the alloca AS into LangAS::Default. This can happen when the target uses a restricted address space for the stack but the source language requires LangAS::Default to be a generic address space. The latter condition is common for most programming languages; OpenCL is an exception in that LangAS::Default is the private address space, which naturally maps to the stack. Because the address of a temporary is often exposed to the program in various ways, this function will perform the cast. The original alloca instruction is returned through \p Alloca if it is not nullptr. The cast is not performaed in CreateTempAllocaWithoutCast. This is more efficient if the caller knows that the address will not be exposed.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2563
Parameters
- llvm::Type* Ty
- const llvm::Twine& Name = "tmp"
- llvm::Value* ArraySize = nullptr
¶clang::CodeGen::Address
CreateTempAllocaWithoutCast(
llvm::Type* Ty,
clang::CharUnits align,
const llvm::Twine& Name = "tmp",
llvm::Value* ArraySize = nullptr)
clang::CodeGen::Address
CreateTempAllocaWithoutCast(
llvm::Type* Ty,
clang::CharUnits align,
const llvm::Twine& Name = "tmp",
llvm::Value* ArraySize = nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2569
Parameters
- llvm::Type* Ty
- clang::CharUnits align
- const llvm::Twine& Name = "tmp"
- llvm::Value* ArraySize = nullptr
¶void DeactivateCleanupBlock(
EHScopeStack::stable_iterator Cleanup,
llvm::Instruction* DominatingIP)
void DeactivateCleanupBlock(
EHScopeStack::stable_iterator Cleanup,
llvm::Instruction* DominatingIP)
Description
DeactivateCleanupBlock - Deactivates the given cleanup block. The block cannot be reactivated. Pops it if it's the top of the stack.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:857
Parameters
- EHScopeStack::stable_iterator Cleanup
- llvm::Instruction* DominatingIP
- - An instruction which is known to dominate the current IP (if set) and which lies along all paths of execution between the current IP and the the point at which the cleanup comes into scope.
¶llvm::Value* DecodeAddrUsedInPrologue(
llvm::Value* F,
llvm::Value* EncodedAddr)
llvm::Value* DecodeAddrUsedInPrologue(
llvm::Value* F,
llvm::Value* EncodedAddr)
Description
Decode an address used in a function prologue, encoded by \c EncodeAddrForUseInPrologue.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2366
Parameters
- llvm::Value* F
- llvm::Value* EncodedAddr
¶llvm::Value* EmitAArch64BuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
llvm::Triple::ArchType Arch)
llvm::Value* EmitAArch64BuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
llvm::Triple::ArchType Arch)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4240
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
- llvm::Triple::ArchType Arch
¶llvm::Value* EmitAArch64CompareBuiltinExpr(
llvm::Value* Op,
llvm::Type* Ty,
const llvm::CmpInst::Predicate Fp,
const llvm::CmpInst::Predicate Ip,
const llvm::Twine& Name = "")
llvm::Value* EmitAArch64CompareBuiltinExpr(
llvm::Value* Op,
llvm::Type* Ty,
const llvm::CmpInst::Predicate Fp,
const llvm::CmpInst::Predicate Ip,
const llvm::Twine& Name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4148
Parameters
- llvm::Value* Op
- llvm::Type* Ty
- const llvm::CmpInst::Predicate Fp
- const llvm::CmpInst::Predicate Ip
- const llvm::Twine& Name = ""
¶llvm::Value* EmitAArch64SVEBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitAArch64SVEBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4238
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶llvm::Value* EmitAMDGPUBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitAMDGPUBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4247
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶clang::CodeGen::RValue
EmitAMDGPUDevicePrintfCallExpr(
const clang::CallExpr* E)
clang::CodeGen::RValue
EmitAMDGPUDevicePrintfCallExpr(
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4121
Parameters
- const clang::CallExpr* E
¶llvm::Value* EmitARCAutorelease(
llvm::Value* value)
llvm::Value* EmitARCAutorelease(
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4303
Parameters
- llvm::Value* value
¶llvm::Value* EmitARCAutoreleaseReturnValue(
llvm::Value* value)
llvm::Value* EmitARCAutoreleaseReturnValue(
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4304
Parameters
- llvm::Value* value
¶void EmitARCCopyWeak(clang::CodeGen::Address dst,
clang::CodeGen::Address src)
void EmitARCCopyWeak(clang::CodeGen::Address dst,
clang::CodeGen::Address src)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4290
Parameters
¶void EmitARCDestroyStrong(
clang::CodeGen::Address addr,
clang::CodeGen::ARCPreciseLifetime_t precise)
void EmitARCDestroyStrong(
clang::CodeGen::Address addr,
clang::CodeGen::ARCPreciseLifetime_t precise)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4301
Parameters
- clang::CodeGen::Address addr
- clang::CodeGen::ARCPreciseLifetime_t precise
¶void EmitARCDestroyWeak(
clang::CodeGen::Address addr)
void EmitARCDestroyWeak(
clang::CodeGen::Address addr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4284
Parameters
¶llvm::Value* EmitARCExtendBlockObject(
const clang::Expr* expr)
llvm::Value* EmitARCExtendBlockObject(
const clang::Expr* expr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4331
Parameters
- const clang::Expr* expr
¶void EmitARCInitWeak(clang::CodeGen::Address addr,
llvm::Value* value)
void EmitARCInitWeak(clang::CodeGen::Address addr,
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4283
Parameters
- clang::CodeGen::Address addr
- llvm::Value* value
¶void EmitARCIntrinsicUse(
ArrayRef<llvm::Value*> values)
void EmitARCIntrinsicUse(
ArrayRef<llvm::Value*> values)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4338
Parameters
- ArrayRef<llvm::Value*> values
¶llvm::Value* EmitARCLoadWeak(
clang::CodeGen::Address addr)
llvm::Value* EmitARCLoadWeak(
clang::CodeGen::Address addr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4285
Parameters
¶llvm::Value* EmitARCLoadWeakRetained(
clang::CodeGen::Address addr)
llvm::Value* EmitARCLoadWeakRetained(
clang::CodeGen::Address addr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4286
Parameters
¶void EmitARCMoveWeak(clang::CodeGen::Address dst,
clang::CodeGen::Address src)
void EmitARCMoveWeak(clang::CodeGen::Address dst,
clang::CodeGen::Address src)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4291
Parameters
¶void EmitARCNoopIntrinsicUse(
ArrayRef<llvm::Value*> values)
void EmitARCNoopIntrinsicUse(
ArrayRef<llvm::Value*> values)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4340
Parameters
- ArrayRef<llvm::Value*> values
¶llvm::Value* EmitARCReclaimReturnedObject(
const clang::Expr* e,
bool allowUnsafeClaim)
llvm::Value* EmitARCReclaimReturnedObject(
const clang::Expr* e,
bool allowUnsafeClaim)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4332
Parameters
- const clang::Expr* e
- bool allowUnsafeClaim
¶void EmitARCRelease(
llvm::Value* value,
clang::CodeGen::ARCPreciseLifetime_t precise)
void EmitARCRelease(
llvm::Value* value,
clang::CodeGen::ARCPreciseLifetime_t precise)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4302
Parameters
- llvm::Value* value
- clang::CodeGen::ARCPreciseLifetime_t precise
¶llvm::Value* EmitARCRetain(clang::QualType type,
llvm::Value* value)
llvm::Value* EmitARCRetain(clang::QualType type,
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4298
Parameters
- clang::QualType type
- llvm::Value* value
¶llvm::Value* EmitARCRetainAutorelease(
clang::QualType type,
llvm::Value* value)
llvm::Value* EmitARCRetainAutorelease(
clang::QualType type,
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4292
Parameters
- clang::QualType type
- llvm::Value* value
¶llvm::Value* EmitARCRetainAutoreleaseNonBlock(
llvm::Value* value)
llvm::Value* EmitARCRetainAutoreleaseNonBlock(
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4293
Parameters
- llvm::Value* value
¶llvm::Value* EmitARCRetainAutoreleaseReturnValue(
llvm::Value* value)
llvm::Value* EmitARCRetainAutoreleaseReturnValue(
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4305
Parameters
- llvm::Value* value
¶llvm::Value* EmitARCRetainAutoreleaseScalarExpr(
const clang::Expr* expr)
llvm::Value* EmitARCRetainAutoreleaseScalarExpr(
const clang::Expr* expr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4335
Parameters
- const clang::Expr* expr
¶llvm::Value* EmitARCRetainAutoreleasedReturnValue(
llvm::Value* value)
llvm::Value* EmitARCRetainAutoreleasedReturnValue(
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4306
Parameters
- llvm::Value* value
¶llvm::Value* EmitARCRetainBlock(
llvm::Value* value,
bool mandatory)
llvm::Value* EmitARCRetainBlock(
llvm::Value* value,
bool mandatory)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4300
Parameters
- llvm::Value* value
- bool mandatory
¶llvm::Value* EmitARCRetainNonBlock(
llvm::Value* value)
llvm::Value* EmitARCRetainNonBlock(
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4299
Parameters
- llvm::Value* value
¶llvm::Value* EmitARCRetainScalarExpr(
const clang::Expr* expr)
llvm::Value* EmitARCRetainScalarExpr(
const clang::Expr* expr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4334
Parameters
- const clang::Expr* expr
¶std::pair<LValue, llvm::Value*>
EmitARCStoreAutoreleasing(
const clang::BinaryOperator* e)
std::pair<LValue, llvm::Value*>
EmitARCStoreAutoreleasing(
const clang::BinaryOperator* e)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4315
Parameters
- const clang::BinaryOperator* e
¶std::pair<LValue, llvm::Value*>
EmitARCStoreStrong(const clang::BinaryOperator* e,
bool ignored)
std::pair<LValue, llvm::Value*>
EmitARCStoreStrong(const clang::BinaryOperator* e,
bool ignored)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4317
Parameters
- const clang::BinaryOperator* e
- bool ignored
¶llvm::Value* EmitARCStoreStrong(
clang::CodeGen::LValue lvalue,
llvm::Value* value,
bool resultIgnored)
llvm::Value* EmitARCStoreStrong(
clang::CodeGen::LValue lvalue,
llvm::Value* value,
bool resultIgnored)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4294
Parameters
- clang::CodeGen::LValue lvalue
- llvm::Value* value
- bool resultIgnored
¶llvm::Value* EmitARCStoreStrongCall(
clang::CodeGen::Address addr,
llvm::Value* value,
bool resultIgnored)
llvm::Value* EmitARCStoreStrongCall(
clang::CodeGen::Address addr,
llvm::Value* value,
bool resultIgnored)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4296
Parameters
- clang::CodeGen::Address addr
- llvm::Value* value
- bool resultIgnored
¶std::pair<LValue, llvm::Value*>
EmitARCStoreUnsafeUnretained(
const clang::BinaryOperator* e,
bool ignored)
std::pair<LValue, llvm::Value*>
EmitARCStoreUnsafeUnretained(
const clang::BinaryOperator* e,
bool ignored)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4319
Parameters
- const clang::BinaryOperator* e
- bool ignored
¶llvm::Value* EmitARCStoreWeak(
clang::CodeGen::Address addr,
llvm::Value* value,
bool ignored)
llvm::Value* EmitARCStoreWeak(
clang::CodeGen::Address addr,
llvm::Value* value,
bool ignored)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4287
Parameters
- clang::CodeGen::Address addr
- llvm::Value* value
- bool ignored
¶llvm::Value*
EmitARCUnsafeClaimAutoreleasedReturnValue(
llvm::Value* value)
llvm::Value*
EmitARCUnsafeClaimAutoreleasedReturnValue(
llvm::Value* value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4307
Parameters
- llvm::Value* value
¶llvm::Value* EmitARCUnsafeUnretainedScalarExpr(
const clang::Expr* expr)
llvm::Value* EmitARCUnsafeUnretainedScalarExpr(
const clang::Expr* expr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4336
Parameters
- const clang::Expr* expr
¶llvm::Value* EmitARMBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Triple::ArchType Arch)
llvm::Value* EmitARMBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Triple::ArchType Arch)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4152
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
- llvm::Triple::ArchType Arch
¶llvm::Value* EmitARMCDEBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Triple::ArchType Arch)
llvm::Value* EmitARMCDEBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Triple::ArchType Arch)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4158
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
- llvm::Triple::ArchType Arch
¶llvm::Value* EmitARMMVEBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Triple::ArchType Arch)
llvm::Value* EmitARMMVEBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Triple::ArchType Arch)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4155
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
- llvm::Triple::ArchType Arch
¶void EmitAggExpr(const clang::Expr* E,
clang::CodeGen::AggValueSlot AS)
void EmitAggExpr(const clang::Expr* E,
clang::CodeGen::AggValueSlot AS)
Description
EmitAggExpr - Emit the computation of the specified expression of aggregate type. The result is computed into the given slot, which may be null to indicate that the value is not needed.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4381
Parameters
- const clang::Expr* E
- clang::CodeGen::AggValueSlot AS
¶clang::CodeGen::LValue EmitAggExprToLValue(
const clang::Expr* E)
clang::CodeGen::LValue EmitAggExprToLValue(
const clang::Expr* E)
Description
EmitAggExprToLValue - Emit the computation of the specified expression of aggregate type into a temporary LValue.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4385
Parameters
- const clang::Expr* E
¶void EmitAggregateAssign(
clang::CodeGen::LValue Dest,
clang::CodeGen::LValue Src,
clang::QualType EltTy)
void EmitAggregateAssign(
clang::CodeGen::LValue Dest,
clang::CodeGen::LValue Src,
clang::QualType EltTy)
Description
Emit an aggregate assignment.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2695
Parameters
- clang::CodeGen::LValue Dest
- clang::CodeGen::LValue Src
- clang::QualType EltTy
¶void EmitAggregateCopy(
clang::CodeGen::LValue Dest,
clang::CodeGen::LValue Src,
clang::QualType EltTy,
AggValueSlot::Overlap_t MayOverlap,
bool isVolatile = false)
void EmitAggregateCopy(
clang::CodeGen::LValue Dest,
clang::CodeGen::LValue Src,
clang::QualType EltTy,
AggValueSlot::Overlap_t MayOverlap,
bool isVolatile = false)
Description
EmitAggregateCopy - Emit an aggregate copy.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2712
Parameters
- clang::CodeGen::LValue Dest
- clang::CodeGen::LValue Src
- clang::QualType EltTy
- AggValueSlot::Overlap_t MayOverlap
- Whether the tail padding of the destination might be occupied by some other object. More efficient code can often be generated if not.
- bool isVolatile = false
- \c true iff either the source or the destination is volatile.
¶void EmitAggregateCopyCtor(
clang::CodeGen::LValue Dest,
clang::CodeGen::LValue Src,
AggValueSlot::Overlap_t MayOverlap)
void EmitAggregateCopyCtor(
clang::CodeGen::LValue Dest,
clang::CodeGen::LValue Src,
AggValueSlot::Overlap_t MayOverlap)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2700
Parameters
- clang::CodeGen::LValue Dest
- clang::CodeGen::LValue Src
- AggValueSlot::Overlap_t MayOverlap
¶void EmitAggregateStore(
llvm::Value* Val,
clang::CodeGen::Address Dest,
bool DestIsVolatile)
void EmitAggregateStore(
llvm::Value* Val,
clang::CodeGen::Address Dest,
bool DestIsVolatile)
Description
Build all the stores needed to initialize an aggregate at Dest with the value Val.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4389
Parameters
- llvm::Value* Val
- clang::CodeGen::Address Dest
- bool DestIsVolatile
¶void EmitAndRegisterVariableArrayDimensions(
clang::CodeGen::CGDebugInfo* DI,
const clang::VarDecl& D,
bool EmitDebugInfo)
void EmitAndRegisterVariableArrayDimensions(
clang::CodeGen::CGDebugInfo* DI,
const clang::VarDecl& D,
bool EmitDebugInfo)
Description
Emits the alloca and debug information for the size expressions for each dimension of an array. It registers the association of its (1-dimensional) QualTypes and size expression's debug node, so that CGDebugInfo can reference this node when creating the DISubrange object to describe the array types.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3132
Parameters
- clang::CodeGen::CGDebugInfo* DI
- const clang::VarDecl& D
- bool EmitDebugInfo
¶llvm::Value* EmitAnnotationCall(
llvm::Function* AnnotationFn,
llvm::Value* AnnotatedVal,
llvm::StringRef AnnotationStr,
clang::SourceLocation Location,
const clang::AnnotateAttr* Attr)
llvm::Value* EmitAnnotationCall(
llvm::Function* AnnotationFn,
llvm::Value* AnnotatedVal,
llvm::StringRef AnnotationStr,
clang::SourceLocation Location,
const clang::AnnotateAttr* Attr)
Description
Emit an annotation call (intrinsic).
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4498
Parameters
- llvm::Function* AnnotationFn
- llvm::Value* AnnotatedVal
- llvm::StringRef AnnotationStr
- clang::SourceLocation Location
- const clang::AnnotateAttr* Attr
¶clang::CodeGen::RValue EmitAnyExpr(
const clang::Expr* E,
clang::CodeGen::AggValueSlot aggSlot =
AggValueSlot::ignored(),
bool ignoreResult = false)
clang::CodeGen::RValue EmitAnyExpr(
const clang::Expr* E,
clang::CodeGen::AggValueSlot aggSlot =
AggValueSlot::ignored(),
bool ignoreResult = false)
Description
EmitAnyExpr - Emit code to compute the specified expression which can have any type. The result is returned as an RValue struct. If this is an aggregate expression, the aggloc/agglocvolatile arguments indicate where the result should be returned.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2638
Parameters
- const clang::Expr* E
- clang::CodeGen::AggValueSlot aggSlot = AggValueSlot::ignored()
- bool ignoreResult = false
- True if the resulting value isn't used.
¶void EmitAnyExprToExn(
const clang::Expr* E,
clang::CodeGen::Address Addr)
void EmitAnyExprToExn(
const clang::Expr* E,
clang::CodeGen::Address Addr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2660
Parameters
- const clang::Expr* E
- clang::CodeGen::Address Addr
¶void EmitAnyExprToMem(
const clang::Expr* E,
clang::CodeGen::Address Location,
clang::Qualifiers Quals,
bool IsInitializer)
void EmitAnyExprToMem(
const clang::Expr* E,
clang::CodeGen::Address Location,
clang::Qualifiers Quals,
bool IsInitializer)
Description
EmitAnyExprToMem - Emits the code necessary to evaluate an arbitrary expression into the given memory location.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2657
Parameters
- const clang::Expr* E
- clang::CodeGen::Address Location
- clang::Qualifiers Quals
- bool IsInitializer
¶clang::CodeGen::RValue EmitAnyExprToTemp(
const clang::Expr* E)
clang::CodeGen::RValue EmitAnyExprToTemp(
const clang::Expr* E)
Description
EmitAnyExprToTemp - Similarly to EmitAnyExpr(), however, the result will always be accessible even if no aggregate location is provided.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2653
Parameters
- const clang::Expr* E
¶clang::CodeGen::LValue EmitArraySubscriptExpr(
const clang::ArraySubscriptExpr* E,
bool Accessed = false)
clang::CodeGen::LValue EmitArraySubscriptExpr(
const clang::ArraySubscriptExpr* E,
bool Accessed = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3911
Parameters
- const clang::ArraySubscriptExpr* E
- bool Accessed = false
¶clang::CodeGen::Address EmitArrayToPointerDecay(
const clang::Expr* Array,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
clang::CodeGen::Address EmitArrayToPointerDecay(
const clang::Expr* Array,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3931
Parameters
- const clang::Expr* Array
- clang::CodeGen::LValueBaseInfo* BaseInfo = nullptr
- clang::CodeGen::TBAAAccessInfo* TBAAInfo = nullptr
¶void EmitAsanPrologueOrEpilogue(bool Prologue)
void EmitAsanPrologueOrEpilogue(bool Prologue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2228
Parameters
- bool Prologue
¶std::pair<llvm::Value*, llvm::Type*> EmitAsmInput(
const TargetInfo::ConstraintInfo& Info,
const clang::Expr* InputExpr,
std::string& ConstraintStr)
std::pair<llvm::Value*, llvm::Type*> EmitAsmInput(
const TargetInfo::ConstraintInfo& Info,
const clang::Expr* InputExpr,
std::string& ConstraintStr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4695
Parameters
- const TargetInfo::ConstraintInfo& Info
- const clang::Expr* InputExpr
- std::string& ConstraintStr
¶std::pair<llvm::Value*, llvm::Type*>
EmitAsmInputLValue(
const TargetInfo::ConstraintInfo& Info,
clang::CodeGen::LValue InputValue,
clang::QualType InputType,
std::string& ConstraintStr,
clang::SourceLocation Loc)
std::pair<llvm::Value*, llvm::Type*>
EmitAsmInputLValue(
const TargetInfo::ConstraintInfo& Info,
clang::CodeGen::LValue InputValue,
clang::QualType InputType,
std::string& ConstraintStr,
clang::SourceLocation Loc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4699
Parameters
- const TargetInfo::ConstraintInfo& Info
- clang::CodeGen::LValue InputValue
- clang::QualType InputType
- std::string& ConstraintStr
- clang::SourceLocation Loc
¶void EmitAsmStmt(const clang::AsmStmt& S)
void EmitAsmStmt(const clang::AsmStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3255
Parameters
- const clang::AsmStmt& S
¶std::pair<RValue, llvm::Value*>
EmitAtomicCompareExchange(
clang::CodeGen::LValue Obj,
clang::CodeGen::RValue Expected,
clang::CodeGen::RValue Desired,
clang::SourceLocation Loc,
llvm::AtomicOrdering Success = llvm::
AtomicOrdering::SequentiallyConsistent,
llvm::AtomicOrdering Failure = llvm::
AtomicOrdering::SequentiallyConsistent,
bool IsWeak = false,
clang::CodeGen::AggValueSlot Slot =
AggValueSlot::ignored())
std::pair<RValue, llvm::Value*>
EmitAtomicCompareExchange(
clang::CodeGen::LValue Obj,
clang::CodeGen::RValue Expected,
clang::CodeGen::RValue Desired,
clang::SourceLocation Loc,
llvm::AtomicOrdering Success = llvm::
AtomicOrdering::SequentiallyConsistent,
llvm::AtomicOrdering Failure = llvm::
AtomicOrdering::SequentiallyConsistent,
bool IsWeak = false,
clang::CodeGen::AggValueSlot Slot =
AggValueSlot::ignored())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3797
Parameters
- clang::CodeGen::LValue Obj
- clang::CodeGen::RValue Expected
- clang::CodeGen::RValue Desired
- clang::SourceLocation Loc
- llvm::AtomicOrdering Success = llvm::AtomicOrdering::SequentiallyConsistent
- llvm::AtomicOrdering Failure = llvm::AtomicOrdering::SequentiallyConsistent
- bool IsWeak = false
- clang::CodeGen::AggValueSlot Slot = AggValueSlot::ignored()
¶clang::CodeGen::RValue EmitAtomicExpr(
clang::AtomicExpr* E)
clang::CodeGen::RValue EmitAtomicExpr(
clang::AtomicExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4491
Parameters
¶void EmitAtomicInit(clang::Expr* E,
clang::CodeGen::LValue lvalue)
void EmitAtomicInit(clang::Expr* E,
clang::CodeGen::LValue lvalue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3781
Parameters
- clang::Expr* E
- clang::CodeGen::LValue lvalue
¶clang::CodeGen::RValue EmitAtomicLoad(
clang::CodeGen::LValue lvalue,
clang::SourceLocation loc,
llvm::AtomicOrdering AO,
bool IsVolatile = false,
clang::CodeGen::AggValueSlot slot =
AggValueSlot::ignored())
clang::CodeGen::RValue EmitAtomicLoad(
clang::CodeGen::LValue lvalue,
clang::SourceLocation loc,
llvm::AtomicOrdering AO,
bool IsVolatile = false,
clang::CodeGen::AggValueSlot slot =
AggValueSlot::ignored())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3788
Parameters
- clang::CodeGen::LValue lvalue
- clang::SourceLocation loc
- llvm::AtomicOrdering AO
- bool IsVolatile = false
- clang::CodeGen::AggValueSlot slot = AggValueSlot::ignored()
¶clang::CodeGen::RValue EmitAtomicLoad(
clang::CodeGen::LValue LV,
clang::SourceLocation SL,
clang::CodeGen::AggValueSlot Slot =
AggValueSlot::ignored())
clang::CodeGen::RValue EmitAtomicLoad(
clang::CodeGen::LValue LV,
clang::SourceLocation SL,
clang::CodeGen::AggValueSlot Slot =
AggValueSlot::ignored())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3785
Parameters
- clang::CodeGen::LValue LV
- clang::SourceLocation SL
- clang::CodeGen::AggValueSlot Slot = AggValueSlot::ignored()
¶void EmitAtomicStore(
clang::CodeGen::RValue rvalue,
clang::CodeGen::LValue lvalue,
llvm::AtomicOrdering AO,
bool IsVolatile,
bool isInit)
void EmitAtomicStore(
clang::CodeGen::RValue rvalue,
clang::CodeGen::LValue lvalue,
llvm::AtomicOrdering AO,
bool IsVolatile,
bool isInit)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3794
Parameters
- clang::CodeGen::RValue rvalue
- clang::CodeGen::LValue lvalue
- llvm::AtomicOrdering AO
- bool IsVolatile
- bool isInit
¶void EmitAtomicStore(
clang::CodeGen::RValue rvalue,
clang::CodeGen::LValue lvalue,
bool isInit)
void EmitAtomicStore(
clang::CodeGen::RValue rvalue,
clang::CodeGen::LValue lvalue,
bool isInit)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3792
Parameters
- clang::CodeGen::RValue rvalue
- clang::CodeGen::LValue lvalue
- bool isInit
¶void EmitAtomicUpdate(
clang::CodeGen::LValue LVal,
llvm::AtomicOrdering AO,
const llvm::function_ref<RValue(RValue)>&
UpdateOp,
bool IsVolatile)
void EmitAtomicUpdate(
clang::CodeGen::LValue LVal,
llvm::AtomicOrdering AO,
const llvm::function_ref<RValue(RValue)>&
UpdateOp,
bool IsVolatile)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3805
Parameters
- clang::CodeGen::LValue LVal
- llvm::AtomicOrdering AO
- const llvm::function_ref<RValue(RValue)>& UpdateOp
- bool IsVolatile
¶void EmitAttributedStmt(
const clang::AttributedStmt& S)
void EmitAttributedStmt(
const clang::AttributedStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3237
Parameters
- const clang::AttributedStmt& S
¶clang::CodeGen::CodeGenFunction::AutoVarEmission
EmitAutoVarAlloca(const clang::VarDecl& var)
clang::CodeGen::CodeGenFunction::AutoVarEmission
EmitAutoVarAlloca(const clang::VarDecl& var)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3121
Parameters
- const clang::VarDecl& var
¶void EmitAutoVarCleanups(
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission)
void EmitAutoVarCleanups(
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3123
Parameters
- const clang::CodeGen::CodeGenFunction:: AutoVarEmission& emission
¶void EmitAutoVarDecl(const clang::VarDecl& D)
void EmitAutoVarDecl(const clang::VarDecl& D)
Description
EmitAutoVarDecl - Emit an auto variable declaration. This function can be called with a null (unreachable) insert point.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3049
Parameters
- const clang::VarDecl& D
¶void EmitAutoVarInit(
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission)
void EmitAutoVarInit(
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3122
Parameters
- const clang::CodeGen::CodeGenFunction:: AutoVarEmission& emission
¶llvm::Value* EmitBPFBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitBPFBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4242
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶clang::CodeGen::LValue EmitBinaryOperatorLValue(
const clang::BinaryOperator* E)
clang::CodeGen::LValue EmitBinaryOperatorLValue(
const clang::BinaryOperator* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3900
Parameters
- const clang::BinaryOperator* E
¶void EmitBlock(llvm::BasicBlock* BB,
bool IsFinished = false)
void EmitBlock(llvm::BasicBlock* BB,
bool IsFinished = false)
Description
EmitBlock - Emit the given block IsFinished - If true, indicates that the caller has finished emitting branches to the given block and does not expect to emit code into it. This means the block can be ignored if it is unreachable.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2450
Parameters
- llvm::BasicBlock* BB
- bool IsFinished = false
¶void EmitBlockAfterUses(llvm::BasicBlock* BB)
void EmitBlockAfterUses(llvm::BasicBlock* BB)
Description
EmitBlockAfterUses - Emit the given block somewhere hopefully near its uses, and leave the insertion point in it.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2454
Parameters
- llvm::BasicBlock* BB
¶clang::CodeGen::RValue EmitBlockCallExpr(
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
clang::CodeGen::RValue EmitBlockCallExpr(
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4141
Parameters
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
¶llvm::Value* EmitBlockCopyAndAutorelease(
llvm::Value* Block,
clang::QualType Ty)
llvm::Value* EmitBlockCopyAndAutorelease(
llvm::Value* Block,
clang::QualType Ty)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2147
Parameters
- llvm::Value* Block
- clang::QualType Ty
¶llvm::Value* EmitBlockLiteral(
const clang::BlockExpr*)
llvm::Value* EmitBlockLiteral(
const clang::BlockExpr*)
Description
Emit block literal.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2130
Parameters
- const clang::BlockExpr*
Returns
an LLVM value which is a pointer to a struct which contains information about the block, including the block invoke function, the captured variables, etc.
¶llvm::Value* EmitBlockLiteral(
const clang::CodeGen::CGBlockInfo& Info)
llvm::Value* EmitBlockLiteral(
const clang::CodeGen::CGBlockInfo& Info)
Description
Helpers for blocks.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3678
Parameters
- const clang::CodeGen::CGBlockInfo& Info
¶void EmitBlockWithFallThrough(
llvm::BasicBlock* BB,
const clang::Stmt* S)
void EmitBlockWithFallThrough(
llvm::BasicBlock* BB,
const clang::Stmt* S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2218
Parameters
- llvm::BasicBlock* BB
- const clang::Stmt* S
¶void EmitBoundsCheck(const clang::Expr* E,
const clang::Expr* Base,
llvm::Value* Index,
clang::QualType IndexType,
bool Accessed)
void EmitBoundsCheck(const clang::Expr* E,
const clang::Expr* Base,
llvm::Value* Index,
clang::QualType IndexType,
bool Accessed)
Description
Emit a check that \p Base points into an array object, which we can access at index \p Index. \p Accessed should be \c false if we this expression is used as an lvalue, for instance in "&Arr[Idx]".
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3007
Parameters
- const clang::Expr* E
- const clang::Expr* Base
- llvm::Value* Index
- clang::QualType IndexType
- bool Accessed
¶void EmitBranch(llvm::BasicBlock* Block)
void EmitBranch(llvm::BasicBlock* Block)
Description
EmitBranch - Emit a branch to the specified basic block from the current insert block, taking care to avoid creation of branches from dummy blocks. It is legal to call this function even if there is no current insertion point. This function clears the current insertion point. The caller should follow calls to this function with calls to Emit*Block prior to generation new code.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2464
Parameters
- llvm::BasicBlock* Block
¶void EmitBranchOnBoolExpr(
const clang::Expr* Cond,
llvm::BasicBlock* TrueBlock,
llvm::BasicBlock* FalseBlock,
uint64_t TrueCount,
Stmt::Likelihood LH = Stmt::LH_None)
void EmitBranchOnBoolExpr(
const clang::Expr* Cond,
llvm::BasicBlock* TrueBlock,
llvm::BasicBlock* FalseBlock,
uint64_t TrueCount,
Stmt::Likelihood LH = Stmt::LH_None)
Description
EmitBranchOnBoolExpr - Emit a branch on a boolean condition (e.g. for an if statement) to the specified blocks. Based on the condition, this might try to simplify the codegen of the conditional based on the branch. TrueCount should be the number of times we expect the condition to evaluate to true based on PGO data.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4561
Parameters
- const clang::Expr* Cond
- llvm::BasicBlock* TrueBlock
- llvm::BasicBlock* FalseBlock
- uint64_t TrueCount
- Stmt::Likelihood LH = Stmt::LH_None
¶void EmitBranchThroughCleanup(
clang::CodeGen::CodeGenFunction::JumpDest
Dest)
void EmitBranchThroughCleanup(
clang::CodeGen::CodeGenFunction::JumpDest
Dest)
Description
EmitBranchThroughCleanup - Emit a branch from the current insert block through the normal cleanup handling code (if any) and then on to
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1166
Parameters
¶void EmitBranchToCounterBlock(
const clang::Expr* Cond,
BinaryOperator::Opcode LOp,
llvm::BasicBlock* TrueBlock,
llvm::BasicBlock* FalseBlock,
uint64_t TrueCount = 0,
Stmt::Likelihood LH = Stmt::LH_None,
const clang::Expr* CntrIdx = nullptr)
void EmitBranchToCounterBlock(
const clang::Expr* Cond,
BinaryOperator::Opcode LOp,
llvm::BasicBlock* TrueBlock,
llvm::BasicBlock* FalseBlock,
uint64_t TrueCount = 0,
Stmt::Likelihood LH = Stmt::LH_None,
const clang::Expr* CntrIdx = nullptr)
Description
EmitBranchToCounterBlock - Emit a conditional branch to a new block that increments a profile counter based on the semantics of the given logical operator opcode. This is used to instrument branch condition coverage for logical operators.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4549
Parameters
- const clang::Expr* Cond
- BinaryOperator::Opcode LOp
- llvm::BasicBlock* TrueBlock
- llvm::BasicBlock* FalseBlock
- uint64_t TrueCount = 0
- Stmt::Likelihood LH = Stmt::LH_None
- const clang::Expr* CntrIdx = nullptr
¶void EmitBreakStmt(const clang::BreakStmt& S)
void EmitBreakStmt(const clang::BreakStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3249
Parameters
- const clang::BreakStmt& S
¶clang::CodeGen::RValue EmitBuiltinAlignTo(
const clang::CallExpr* E,
bool AlignUp)
clang::CodeGen::RValue EmitBuiltinAlignTo(
const clang::CallExpr* E,
bool AlignUp)
Description
Emit IR for __builtin_align_up/__builtin_align_down.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4135
Parameters
- const clang::CallExpr* E
- bool AlignUp
¶llvm::Value* EmitBuiltinAvailable(
const llvm::VersionTuple& Version)
llvm::Value* EmitBuiltinAvailable(
const llvm::VersionTuple& Version)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4262
Parameters
- const llvm::VersionTuple& Version
¶clang::CodeGen::RValue EmitBuiltinExpr(
const clang::GlobalDecl GD,
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
clang::CodeGen::RValue EmitBuiltinExpr(
const clang::GlobalDecl GD,
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4124
Parameters
- const clang::GlobalDecl GD
- unsigned int BuiltinID
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
¶clang::CodeGen::RValue EmitBuiltinIsAligned(
const clang::CallExpr* E)
clang::CodeGen::RValue EmitBuiltinIsAligned(
const clang::CallExpr* E)
Description
Emit IR for __builtin_is_aligned.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4133
Parameters
- const clang::CallExpr* E
¶clang::CodeGen::RValue EmitBuiltinNewDeleteCall(
const clang::FunctionProtoType* Type,
const clang::CallExpr* TheCallExpr,
bool IsDelete)
clang::CodeGen::RValue EmitBuiltinNewDeleteCall(
const clang::FunctionProtoType* Type,
const clang::CallExpr* TheCallExpr,
bool IsDelete)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2940
Parameters
- const clang::FunctionProtoType* Type
- const clang::CallExpr* TheCallExpr
- bool IsDelete
¶llvm::Value* EmitCMSEClearRecord(
llvm::Value* V,
llvm::IntegerType* ITy,
clang::QualType RTy)
llvm::Value* EmitCMSEClearRecord(
llvm::Value* V,
llvm::IntegerType* ITy,
clang::QualType RTy)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4161
Parameters
- llvm::Value* V
- llvm::IntegerType* ITy
- clang::QualType RTy
¶llvm::Value* EmitCMSEClearRecord(
llvm::Value* V,
llvm::ArrayType* ATy,
clang::QualType RTy)
llvm::Value* EmitCMSEClearRecord(
llvm::Value* V,
llvm::ArrayType* ATy,
clang::QualType RTy)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4163
Parameters
- llvm::Value* V
- llvm::ArrayType* ATy
- clang::QualType RTy
¶clang::CodeGen::RValue EmitCUDAKernelCallExpr(
const clang::CUDAKernelCallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
clang::CodeGen::RValue EmitCUDAKernelCallExpr(
const clang::CUDAKernelCallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4117
Parameters
- const clang::CUDAKernelCallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
¶void EmitCXXAggrConstructorCall(
const clang::CXXConstructorDecl* D,
const clang::ArrayType* ArrayTy,
clang::CodeGen::Address ArrayPtr,
const clang::CXXConstructExpr* E,
bool NewPointerIsChecked,
bool ZeroInitialization = false)
void EmitCXXAggrConstructorCall(
const clang::CXXConstructorDecl* D,
const clang::ArrayType* ArrayTy,
clang::CodeGen::Address ArrayPtr,
const clang::CXXConstructExpr* E,
bool NewPointerIsChecked,
bool ZeroInitialization = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2897
Parameters
- const clang::CXXConstructorDecl* D
- const clang::ArrayType* ArrayTy
- clang::CodeGen::Address ArrayPtr
- const clang::CXXConstructExpr* E
- bool NewPointerIsChecked
- bool ZeroInitialization = false
¶void EmitCXXAggrConstructorCall(
const clang::CXXConstructorDecl* D,
llvm::Value* NumElements,
clang::CodeGen::Address ArrayPtr,
const clang::CXXConstructExpr* E,
bool NewPointerIsChecked,
bool ZeroInitialization = false)
void EmitCXXAggrConstructorCall(
const clang::CXXConstructorDecl* D,
llvm::Value* NumElements,
clang::CodeGen::Address ArrayPtr,
const clang::CXXConstructExpr* E,
bool NewPointerIsChecked,
bool ZeroInitialization = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2904
Parameters
- const clang::CXXConstructorDecl* D
- llvm::Value* NumElements
- clang::CodeGen::Address ArrayPtr
- const clang::CXXConstructExpr* E
- bool NewPointerIsChecked
- bool ZeroInitialization = false
¶clang::CodeGen::LValue EmitCXXBindTemporaryLValue(
const clang::CXXBindTemporaryExpr* E)
clang::CodeGen::LValue EmitCXXBindTemporaryLValue(
const clang::CXXBindTemporaryExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3989
Parameters
- const clang::CXXBindTemporaryExpr* E
¶void EmitCXXConstructExpr(
const clang::CXXConstructExpr* E,
clang::CodeGen::AggValueSlot Dest)
void EmitCXXConstructExpr(
const clang::CXXConstructExpr* E,
clang::CodeGen::AggValueSlot Dest)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4485
Parameters
- const clang::CXXConstructExpr* E
- clang::CodeGen::AggValueSlot Dest
¶clang::CodeGen::LValue EmitCXXConstructLValue(
const clang::CXXConstructExpr* E)
clang::CodeGen::LValue EmitCXXConstructLValue(
const clang::CXXConstructExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3988
Parameters
- const clang::CXXConstructExpr* E
¶void EmitCXXConstructorCall(
const clang::CXXConstructorDecl* D,
clang::CXXCtorType Type,
bool ForVirtualBase,
bool Delegating,
clang::CodeGen::AggValueSlot ThisAVS,
const clang::CXXConstructExpr* E)
void EmitCXXConstructorCall(
const clang::CXXConstructorDecl* D,
clang::CXXCtorType Type,
bool ForVirtualBase,
bool Delegating,
clang::CodeGen::AggValueSlot ThisAVS,
const clang::CXXConstructExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2876
Parameters
- const clang::CXXConstructorDecl* D
- clang::CXXCtorType Type
- bool ForVirtualBase
- bool Delegating
- clang::CodeGen::AggValueSlot ThisAVS
- const clang::CXXConstructExpr* E
¶void EmitCXXConstructorCall(
const clang::CXXConstructorDecl* D,
clang::CXXCtorType Type,
bool ForVirtualBase,
bool Delegating,
clang::CodeGen::Address This,
clang::CodeGen::CallArgList& Args,
AggValueSlot::Overlap_t Overlap,
clang::SourceLocation Loc,
bool NewPointerIsChecked)
void EmitCXXConstructorCall(
const clang::CXXConstructorDecl* D,
clang::CXXCtorType Type,
bool ForVirtualBase,
bool Delegating,
clang::CodeGen::Address This,
clang::CodeGen::CallArgList& Args,
AggValueSlot::Overlap_t Overlap,
clang::SourceLocation Loc,
bool NewPointerIsChecked)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2880
Parameters
- const clang::CXXConstructorDecl* D
- clang::CXXCtorType Type
- bool ForVirtualBase
- bool Delegating
- clang::CodeGen::Address This
- clang::CodeGen::CallArgList& Args
- AggValueSlot::Overlap_t Overlap
- clang::SourceLocation Loc
- bool NewPointerIsChecked
¶void EmitCXXDeleteExpr(
const clang::CXXDeleteExpr* E)
void EmitCXXDeleteExpr(
const clang::CXXDeleteExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2934
Parameters
- const clang::CXXDeleteExpr* E
¶void EmitCXXDestructorCall(
const clang::CXXDestructorDecl* D,
clang::CXXDtorType Type,
bool ForVirtualBase,
bool Delegating,
clang::CodeGen::Address This,
clang::QualType ThisTy)
void EmitCXXDestructorCall(
const clang::CXXDestructorDecl* D,
clang::CXXDtorType Type,
bool ForVirtualBase,
bool Delegating,
clang::CodeGen::Address This,
clang::QualType ThisTy)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2913
Parameters
- const clang::CXXDestructorDecl* D
- clang::CXXDtorType Type
- bool ForVirtualBase
- bool Delegating
- clang::CodeGen::Address This
- clang::QualType ThisTy
¶clang::CodeGen::RValue EmitCXXDestructorCall(
clang::GlobalDecl Dtor,
const clang::CodeGen::CGCallee& Callee,
llvm::Value* This,
clang::QualType ThisTy,
llvm::Value* ImplicitParam,
clang::QualType ImplicitParamTy,
const clang::CallExpr* E)
clang::CodeGen::RValue EmitCXXDestructorCall(
clang::GlobalDecl Dtor,
const clang::CodeGen::CGCallee& Callee,
llvm::Value* This,
clang::QualType ThisTy,
llvm::Value* ImplicitParam,
clang::QualType ImplicitParamTy,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4091
Parameters
- clang::GlobalDecl Dtor
- const clang::CodeGen::CGCallee& Callee
- llvm::Value* This
- clang::QualType ThisTy
- llvm::Value* ImplicitParam
- clang::QualType ImplicitParamTy
- const clang::CallExpr* E
¶void EmitCXXForRangeStmt(
const clang::CXXForRangeStmt& S,
ArrayRef<const clang::Attr*> Attrs = None)
void EmitCXXForRangeStmt(
const clang::CXXForRangeStmt& S,
ArrayRef<const clang::Attr*> Attrs = None)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3322
Parameters
- const clang::CXXForRangeStmt& S
- ArrayRef<const clang::Attr*> Attrs = None
¶void EmitCXXGlobalVarDeclInit(
const clang::VarDecl& D,
llvm::GlobalVariable* GV,
bool PerformInit)
void EmitCXXGlobalVarDeclInit(
const clang::VarDecl& D,
llvm::GlobalVariable* GV,
bool PerformInit)
Description
EmitCXXGlobalVarDeclInit - Create the initializer for a C++ variable with global storage.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4427
Parameters
- const clang::VarDecl& D
- llvm::GlobalVariable* GV
- bool PerformInit
¶void EmitCXXGuardedInit(
const clang::VarDecl& D,
llvm::GlobalVariable* DeclPtr,
bool PerformInit)
void EmitCXXGuardedInit(
const clang::VarDecl& D,
llvm::GlobalVariable* DeclPtr,
bool PerformInit)
Description
Emit code in this function to perform a guarded variable initialization. Guarded initializations are used when it's not possible to prove that an initialization will be done exactly once, e.g. with a static local variable or a static data member of a class template.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4454
Parameters
- const clang::VarDecl& D
- llvm::GlobalVariable* DeclPtr
- bool PerformInit
¶void EmitCXXGuardedInitBranch(
llvm::Value* NeedsInit,
llvm::BasicBlock* InitBlock,
llvm::BasicBlock* NoInitBlock,
clang::CodeGen::CodeGenFunction::GuardKind
Kind,
const clang::VarDecl* D)
void EmitCXXGuardedInitBranch(
llvm::Value* NeedsInit,
llvm::BasicBlock* InitBlock,
llvm::BasicBlock* NoInitBlock,
clang::CodeGen::CodeGenFunction::GuardKind
Kind,
const clang::VarDecl* D)
Description
Emit a branch to select whether or not to perform guarded initialization.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4460
Parameters
- llvm::Value* NeedsInit
- llvm::BasicBlock* InitBlock
- llvm::BasicBlock* NoInitBlock
- clang::CodeGen::CodeGenFunction::GuardKind Kind
- const clang::VarDecl* D
¶clang::CodeGen::RValue EmitCXXMemberCallExpr(
const clang::CXXMemberCallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
clang::CodeGen::RValue EmitCXXMemberCallExpr(
const clang::CXXMemberCallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4095
Parameters
- const clang::CXXMemberCallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
¶clang::CodeGen::Address
EmitCXXMemberDataPointerAddress(
const clang::Expr* E,
clang::CodeGen::Address base,
llvm::Value* memberPtr,
const clang::MemberPointerType* memberPtrType,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
clang::CodeGen::Address
EmitCXXMemberDataPointerAddress(
const clang::Expr* E,
clang::CodeGen::Address base,
llvm::Value* memberPtr,
const clang::MemberPointerType* memberPtrType,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4104
Parameters
- const clang::Expr* E
- clang::CodeGen::Address base
- llvm::Value* memberPtr
- const clang::MemberPointerType* memberPtrType
- clang::CodeGen::LValueBaseInfo* BaseInfo = nullptr
- clang::CodeGen::TBAAAccessInfo* TBAAInfo = nullptr
¶clang::CodeGen::RValue
EmitCXXMemberOrOperatorCall(
const clang::CXXMethodDecl* Method,
const clang::CodeGen::CGCallee& Callee,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Value* This,
llvm::Value* ImplicitParam,
clang::QualType ImplicitParamTy,
const clang::CallExpr* E,
clang::CodeGen::CallArgList* RtlArgs)
clang::CodeGen::RValue
EmitCXXMemberOrOperatorCall(
const clang::CXXMethodDecl* Method,
const clang::CodeGen::CGCallee& Callee,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Value* This,
llvm::Value* ImplicitParam,
clang::QualType ImplicitParamTy,
const clang::CallExpr* E,
clang::CodeGen::CallArgList* RtlArgs)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4085
Parameters
- const clang::CXXMethodDecl* Method
- const clang::CodeGen::CGCallee& Callee
- clang::CodeGen::ReturnValueSlot ReturnValue
- llvm::Value* This
- llvm::Value* ImplicitParam
- clang::QualType ImplicitParamTy
- const clang::CallExpr* E
- clang::CodeGen::CallArgList* RtlArgs
¶clang::CodeGen::RValue
EmitCXXMemberOrOperatorMemberCallExpr(
const clang::CallExpr* CE,
const clang::CXXMethodDecl* MD,
clang::CodeGen::ReturnValueSlot ReturnValue,
bool HasQualifier,
clang::NestedNameSpecifier* Qualifier,
bool IsArrow,
const clang::Expr* Base)
clang::CodeGen::RValue
EmitCXXMemberOrOperatorMemberCallExpr(
const clang::CallExpr* CE,
const clang::CXXMethodDecl* MD,
clang::CodeGen::ReturnValueSlot ReturnValue,
bool HasQualifier,
clang::NestedNameSpecifier* Qualifier,
bool IsArrow,
const clang::Expr* Base)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4097
Parameters
- const clang::CallExpr* CE
- const clang::CXXMethodDecl* MD
- clang::CodeGen::ReturnValueSlot ReturnValue
- bool HasQualifier
- clang::NestedNameSpecifier* Qualifier
- bool IsArrow
- const clang::Expr* Base
¶clang::CodeGen::RValue
EmitCXXMemberPointerCallExpr(
const clang::CXXMemberCallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
clang::CodeGen::RValue
EmitCXXMemberPointerCallExpr(
const clang::CXXMemberCallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4109
Parameters
- const clang::CXXMemberCallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
¶llvm::Value* EmitCXXNewExpr(
const clang::CXXNewExpr* E)
llvm::Value* EmitCXXNewExpr(
const clang::CXXNewExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2933
Parameters
- const clang::CXXNewExpr* E
¶clang::CodeGen::RValue
EmitCXXOperatorMemberCallExpr(
const clang::CXXOperatorCallExpr* E,
const clang::CXXMethodDecl* MD,
clang::CodeGen::ReturnValueSlot ReturnValue)
clang::CodeGen::RValue
EmitCXXOperatorMemberCallExpr(
const clang::CXXOperatorCallExpr* E,
const clang::CXXMethodDecl* MD,
clang::CodeGen::ReturnValueSlot ReturnValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4112
Parameters
- const clang::CXXOperatorCallExpr* E
- const clang::CXXMethodDecl* MD
- clang::CodeGen::ReturnValueSlot ReturnValue
¶clang::CodeGen::RValue
EmitCXXPseudoDestructorExpr(
const clang::CXXPseudoDestructorExpr* E)
clang::CodeGen::RValue
EmitCXXPseudoDestructorExpr(
const clang::CXXPseudoDestructorExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4115
Parameters
- const clang::CXXPseudoDestructorExpr* E
¶void EmitCXXTemporary(
const clang::CXXTemporary* Temporary,
clang::QualType TempType,
clang::CodeGen::Address Ptr)
void EmitCXXTemporary(
const clang::CXXTemporary* Temporary,
clang::QualType TempType,
clang::CodeGen::Address Ptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2922
Parameters
- const clang::CXXTemporary* Temporary
- clang::QualType TempType
- clang::CodeGen::Address Ptr
¶void EmitCXXThrowExpr(
const clang::CXXThrowExpr* E,
bool KeepInsertionPoint = true)
void EmitCXXThrowExpr(
const clang::CXXThrowExpr* E,
bool KeepInsertionPoint = true)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4489
Parameters
- const clang::CXXThrowExpr* E
- bool KeepInsertionPoint = true
¶void EmitCXXTryStmt(const clang::CXXTryStmt& S)
void EmitCXXTryStmt(const clang::CXXTryStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3278
Parameters
- const clang::CXXTryStmt& S
¶llvm::Value* EmitCXXTypeidExpr(
const clang::CXXTypeidExpr* E)
llvm::Value* EmitCXXTypeidExpr(
const clang::CXXTypeidExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2943
Parameters
- const clang::CXXTypeidExpr* E
¶clang::CodeGen::LValue EmitCXXTypeidLValue(
const clang::CXXTypeidExpr* E)
clang::CodeGen::LValue EmitCXXTypeidLValue(
const clang::CXXTypeidExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3990
Parameters
- const clang::CXXTypeidExpr* E
¶clang::CodeGen::Address EmitCXXUuidofExpr(
const clang::CXXUuidofExpr* E)
clang::CodeGen::Address EmitCXXUuidofExpr(
const clang::CXXUuidofExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2945
Parameters
- const clang::CXXUuidofExpr* E
¶clang::CodeGen::LValue EmitCXXUuidofLValue(
const clang::CXXUuidofExpr* E)
clang::CodeGen::LValue EmitCXXUuidofLValue(
const clang::CXXUuidofExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3991
Parameters
- const clang::CXXUuidofExpr* E
¶clang::CodeGen::RValue EmitCall(
const clang::CodeGen::CGFunctionInfo&
CallInfo,
const clang::CodeGen::CGCallee& Callee,
clang::CodeGen::ReturnValueSlot ReturnValue,
const clang::CodeGen::CallArgList& Args,
llvm::CallBase** callOrInvoke,
bool IsMustTail,
clang::SourceLocation Loc)
clang::CodeGen::RValue EmitCall(
const clang::CodeGen::CGFunctionInfo&
CallInfo,
const clang::CodeGen::CGCallee& Callee,
clang::CodeGen::ReturnValueSlot ReturnValue,
const clang::CodeGen::CallArgList& Args,
llvm::CallBase** callOrInvoke,
bool IsMustTail,
clang::SourceLocation Loc)
Description
EmitCall - Generate a call of the given function, expecting the given result type, and using the given argument list which specifies both the LLVM arguments and the types they were derived from.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4007
Parameters
- const clang::CodeGen::CGFunctionInfo& CallInfo
- const clang::CodeGen::CGCallee& Callee
- clang::CodeGen::ReturnValueSlot ReturnValue
- const clang::CodeGen::CallArgList& Args
- llvm::CallBase** callOrInvoke
- bool IsMustTail
- clang::SourceLocation Loc
¶clang::CodeGen::RValue EmitCall(
const clang::CodeGen::CGFunctionInfo&
CallInfo,
const clang::CodeGen::CGCallee& Callee,
clang::CodeGen::ReturnValueSlot ReturnValue,
const clang::CodeGen::CallArgList& Args,
llvm::CallBase** callOrInvoke = nullptr,
bool IsMustTail = false)
clang::CodeGen::RValue EmitCall(
const clang::CodeGen::CGFunctionInfo&
CallInfo,
const clang::CodeGen::CGCallee& Callee,
clang::CodeGen::ReturnValueSlot ReturnValue,
const clang::CodeGen::CallArgList& Args,
llvm::CallBase** callOrInvoke = nullptr,
bool IsMustTail = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4011
Parameters
- const clang::CodeGen::CGFunctionInfo& CallInfo
- const clang::CodeGen::CGCallee& Callee
- clang::CodeGen::ReturnValueSlot ReturnValue
- const clang::CodeGen::CallArgList& Args
- llvm::CallBase** callOrInvoke = nullptr
- bool IsMustTail = false
¶clang::CodeGen::RValue EmitCall(
clang::QualType FnType,
const clang::CodeGen::CGCallee& Callee,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Value* Chain = nullptr)
clang::CodeGen::RValue EmitCall(
clang::QualType FnType,
const clang::CodeGen::CGCallee& Callee,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue,
llvm::Value* Chain = nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4018
Parameters
- clang::QualType FnType
- const clang::CodeGen::CGCallee& Callee
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
- llvm::Value* Chain = nullptr
¶void EmitCallAndReturnForThunk(
llvm::FunctionCallee Callee,
const clang::ThunkInfo* Thunk,
bool IsUnprototyped)
void EmitCallAndReturnForThunk(
llvm::FunctionCallee Callee,
const clang::ThunkInfo* Thunk,
bool IsUnprototyped)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2243
Parameters
- llvm::FunctionCallee Callee
- const clang::ThunkInfo* Thunk
- bool IsUnprototyped
¶void EmitCallArg(
clang::CodeGen::CallArgList& args,
const clang::Expr* E,
clang::QualType ArgType)
void EmitCallArg(
clang::CodeGen::CallArgList& args,
const clang::Expr* E,
clang::QualType ArgType)
Description
EmitCallArg - Emit a single call argument.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4645
Parameters
- clang::CodeGen::CallArgList& args
- const clang::Expr* E
- clang::QualType ArgType
¶void EmitCallArgs(
clang::CodeGen::CallArgList& Args,
clang::CodeGen::CodeGenFunction::
PrototypeWrapper Prototype,
llvm::iterator_range<
CallExpr::const_arg_iterator> ArgRange,
clang::CodeGen::CodeGenFunction::
AbstractCallee AC = clang::CodeGen::
CodeGenFunction::AbstractCallee(),
unsigned int ParamsToSkip = 0,
clang::CodeGen::CodeGenFunction::
EvaluationOrder Order =
EvaluationOrder::Default)
void EmitCallArgs(
clang::CodeGen::CallArgList& Args,
clang::CodeGen::CodeGenFunction::
PrototypeWrapper Prototype,
llvm::iterator_range<
CallExpr::const_arg_iterator> ArgRange,
clang::CodeGen::CodeGenFunction::
AbstractCallee AC = clang::CodeGen::
CodeGenFunction::AbstractCallee(),
unsigned int ParamsToSkip = 0,
clang::CodeGen::CodeGenFunction::
EvaluationOrder Order =
EvaluationOrder::Default)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4743
Parameters
- clang::CodeGen::CallArgList& Args
- clang::CodeGen::CodeGenFunction::PrototypeWrapper Prototype
- llvm::iterator_range<CallExpr::const_arg_iterator> ArgRange
- clang::CodeGen::CodeGenFunction::AbstractCallee AC = clang::CodeGen::CodeGenFunction::AbstractCallee()
- unsigned int ParamsToSkip = 0
- clang::CodeGen::CodeGenFunction::EvaluationOrder Order = EvaluationOrder::Default
¶clang::CodeGen::RValue EmitCallExpr(
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue =
clang::CodeGen::ReturnValueSlot())
clang::CodeGen::RValue EmitCallExpr(
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue =
clang::CodeGen::ReturnValueSlot())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4020
Parameters
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue = clang::CodeGen::ReturnValueSlot()
¶clang::CodeGen::LValue EmitCallExprLValue(
const clang::CallExpr* E)
clang::CodeGen::LValue EmitCallExprLValue(
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3903
Parameters
- const clang::CallExpr* E
¶llvm::CallBase* EmitCallOrInvoke(
llvm::FunctionCallee Callee,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& Name = "")
llvm::CallBase* EmitCallOrInvoke(
llvm::FunctionCallee Callee,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& Name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4042
Parameters
- llvm::FunctionCallee Callee
- ArrayRef<llvm::Value*> Args
- const llvm::Twine& Name = ""
¶clang::CodeGen::CGCallee EmitCallee(
const clang::Expr* E)
clang::CodeGen::CGCallee EmitCallee(
const clang::Expr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4023
Parameters
- const clang::Expr* E
¶void EmitCapturedLocals(
clang::CodeGen::CodeGenFunction& ParentCGF,
const clang::Stmt* OutlinedStmt,
bool IsFilter)
void EmitCapturedLocals(
clang::CodeGen::CodeGenFunction& ParentCGF,
const clang::Stmt* OutlinedStmt,
bool IsFilter)
Description
Scan the outlined statement for captures from the parent function. For each capture, mark the capture as escaped and emit a call to llvm.localrecover. Insert the localrecover result into the LocalDeclMap.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3310
Parameters
- clang::CodeGen::CodeGenFunction& ParentCGF
- const clang::Stmt* OutlinedStmt
- bool IsFilter
¶llvm::Function* EmitCapturedStmt(
const clang::CapturedStmt& S,
clang::CapturedRegionKind K)
llvm::Function* EmitCapturedStmt(
const clang::CapturedStmt& S,
clang::CapturedRegionKind K)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3341
Parameters
- const clang::CapturedStmt& S
- clang::CapturedRegionKind K
¶void EmitCaseStmt(
const clang::CaseStmt& S,
ArrayRef<const clang::Attr*> Attrs)
void EmitCaseStmt(
const clang::CaseStmt& S,
ArrayRef<const clang::Attr*> Attrs)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3253
Parameters
- const clang::CaseStmt& S
- ArrayRef<const clang::Attr*> Attrs
¶void EmitCaseStmtRange(
const clang::CaseStmt& S,
ArrayRef<const clang::Attr*> Attrs)
void EmitCaseStmtRange(
const clang::CaseStmt& S,
ArrayRef<const clang::Attr*> Attrs)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3254
Parameters
- const clang::CaseStmt& S
- ArrayRef<const clang::Attr*> Attrs
¶clang::CodeGen::LValue EmitCastLValue(
const clang::CastExpr* E)
clang::CodeGen::LValue EmitCastLValue(
const clang::CastExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3923
Parameters
- const clang::CastExpr* E
¶llvm::Value* EmitCastToVoidPtr(llvm::Value* value)
llvm::Value* EmitCastToVoidPtr(llvm::Value* value)
Description
Emit a cast to void* in the appropriate address space.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2623
Parameters
- llvm::Value* value
¶void EmitCfiCheckFail()
void EmitCfiCheckFail()
Description
Emit a cross-DSO CFI failure handling function.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4637
¶void EmitCfiCheckStub()
void EmitCfiCheckStub()
Description
Emit a stub for the cross-DSO CFI check function.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4634
¶void EmitCfiSlowPathCheck(
clang::SanitizerMask Kind,
llvm::Value* Cond,
llvm::ConstantInt* TypeId,
llvm::Value* Ptr,
ArrayRef<llvm::Constant*> StaticArgs)
void EmitCfiSlowPathCheck(
clang::SanitizerMask Kind,
llvm::Value* Cond,
llvm::ConstantInt* TypeId,
llvm::Value* Ptr,
ArrayRef<llvm::Constant*> StaticArgs)
Description
Emit a slow path cross-DSO CFI check which calls __cfi_slowpath if Cond if false.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4617
Parameters
- clang::SanitizerMask Kind
- llvm::Value* Cond
- llvm::ConstantInt* TypeId
- llvm::Value* Ptr
- ArrayRef<llvm::Constant*> StaticArgs
¶void EmitCheck(
ArrayRef<std::pair<llvm::Value*,
SanitizerMask>> Checked,
clang::CodeGen::SanitizerHandler Check,
ArrayRef<llvm::Constant*> StaticArgs,
ArrayRef<llvm::Value*> DynamicArgs)
void EmitCheck(
ArrayRef<std::pair<llvm::Value*,
SanitizerMask>> Checked,
clang::CodeGen::SanitizerHandler Check,
ArrayRef<llvm::Constant*> StaticArgs,
ArrayRef<llvm::Value*> DynamicArgs)
Description
Create a basic block that will either trap or call a handler function in the UBSan runtime with the provided arguments, and create a conditional branch to it.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4611
Parameters
- ArrayRef<std::pair<llvm::Value*, SanitizerMask>> Checked
- clang::CodeGen::SanitizerHandler Check
- ArrayRef<llvm::Constant*> StaticArgs
- ArrayRef<llvm::Value*> DynamicArgs
¶llvm::Constant* EmitCheckSourceLocation(
clang::SourceLocation Loc)
llvm::Constant* EmitCheckSourceLocation(
clang::SourceLocation Loc)
Description
Emit a description of a source location in a format suitable for passing to a runtime sanitizer handler.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4606
Parameters
¶llvm::Constant* EmitCheckTypeDescriptor(
clang::QualType T)
llvm::Constant* EmitCheckTypeDescriptor(
clang::QualType T)
Description
Emit a description of a type in a format suitable for passing to a runtime sanitizer handler.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4598
Parameters
¶llvm::Value* EmitCheckValue(llvm::Value* V)
llvm::Value* EmitCheckValue(llvm::Value* V)
Description
Convert a value into a format suitable for passing to a runtime sanitizer handler.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4602
Parameters
- llvm::Value* V
¶llvm::Value* EmitCheckedArgForBuiltin(
const clang::Expr* E,
clang::CodeGen::CodeGenFunction::
BuiltinCheckKind Kind)
llvm::Value* EmitCheckedArgForBuiltin(
const clang::Expr* E,
clang::CodeGen::CodeGenFunction::
BuiltinCheckKind Kind)
Description
Emits an argument for a call to a builtin. If the builtin sanitizer is enabled, a runtime check specified by \p Kind is also emitted.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4594
Parameters
- const clang::Expr* E
- clang::CodeGen::CodeGenFunction::BuiltinCheckKind Kind
¶llvm::Value* EmitCheckedInBoundsGEP(
llvm::Type* ElemTy,
llvm::Value* Ptr,
ArrayRef<llvm::Value*> IdxList,
bool SignedIndices,
bool IsSubtraction,
clang::SourceLocation Loc,
const llvm::Twine& Name = "")
llvm::Value* EmitCheckedInBoundsGEP(
llvm::Type* ElemTy,
llvm::Value* Ptr,
ArrayRef<llvm::Value*> IdxList,
bool SignedIndices,
bool IsSubtraction,
clang::SourceLocation Loc,
const llvm::Twine& Name = "")
Description
Same as IRBuilder::CreateInBoundsGEP, but additionally emits a check to detect undefined behavior when the pointer overflow sanitizer is enabled.\p SignedIndices indicates whether any of the GEP indices are signed.\p IsSubtraction indicates whether the expression used to form the GEP is a subtraction.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4578
Parameters
- llvm::Type* ElemTy
- llvm::Value* Ptr
- ArrayRef<llvm::Value*> IdxList
- bool SignedIndices
- bool IsSubtraction
- clang::SourceLocation Loc
- const llvm::Twine& Name = ""
¶clang::CodeGen::LValue EmitCheckedLValue(
const clang::Expr* E,
clang::CodeGen::CodeGenFunction::TypeCheckKind
TCK)
clang::CodeGen::LValue EmitCheckedLValue(
const clang::Expr* E,
clang::CodeGen::CodeGenFunction::TypeCheckKind
TCK)
Description
Same as EmitLValue but additionally we generate checking code to guard against undefined behavior. This is only suitable when we know that the address will be used to access the object.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3776
Parameters
- const clang::Expr* E
- clang::CodeGen::CodeGenFunction::TypeCheckKind TCK
¶clang::CodeGen::RValue EmitCoawaitExpr(
const clang::CoawaitExpr& E,
clang::CodeGen::AggValueSlot aggSlot =
AggValueSlot::ignored(),
bool ignoreResult = false)
clang::CodeGen::RValue EmitCoawaitExpr(
const clang::CoawaitExpr& E,
clang::CodeGen::AggValueSlot aggSlot =
AggValueSlot::ignored(),
bool ignoreResult = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3265
Parameters
- const clang::CoawaitExpr& E
- clang::CodeGen::AggValueSlot aggSlot = AggValueSlot::ignored()
- bool ignoreResult = false
¶clang::CodeGen::LValue EmitCoawaitLValue(
const clang::CoawaitExpr* E)
clang::CodeGen::LValue EmitCoawaitLValue(
const clang::CoawaitExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3268
Parameters
- const clang::CoawaitExpr* E
¶llvm::Value* EmitCommonNeonBuiltinExpr(
unsigned int BuiltinID,
unsigned int LLVMIntrinsic,
unsigned int AltLLVMIntrinsic,
const char* NameHint,
unsigned int Modifier,
const clang::CallExpr* E,
SmallVectorImpl<llvm::Value*>& Ops,
clang::CodeGen::Address PtrOp0,
clang::CodeGen::Address PtrOp1,
llvm::Triple::ArchType Arch)
llvm::Value* EmitCommonNeonBuiltinExpr(
unsigned int BuiltinID,
unsigned int LLVMIntrinsic,
unsigned int AltLLVMIntrinsic,
const char* NameHint,
unsigned int Modifier,
const clang::CallExpr* E,
SmallVectorImpl<llvm::Value*>& Ops,
clang::CodeGen::Address PtrOp0,
clang::CodeGen::Address PtrOp1,
llvm::Triple::ArchType Arch)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4166
Parameters
- unsigned int BuiltinID
- unsigned int LLVMIntrinsic
- unsigned int AltLLVMIntrinsic
- const char* NameHint
- unsigned int Modifier
- const clang::CallExpr* E
- SmallVectorImpl<llvm::Value*>& Ops
- clang::CodeGen::Address PtrOp0
- clang::CodeGen::Address PtrOp1
- llvm::Triple::ArchType Arch
¶clang::CodeGen::LValue
EmitComplexAssignmentLValue(
const clang::BinaryOperator* E)
clang::CodeGen::LValue
EmitComplexAssignmentLValue(
const clang::BinaryOperator* E)
Description
Emit an l-value for an assignment (simple or compound) of complex type.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3894
Parameters
- const clang::BinaryOperator* E
¶clang::CodeGen::LValue
EmitComplexCompoundAssignmentLValue(
const clang::CompoundAssignOperator* E)
clang::CodeGen::LValue
EmitComplexCompoundAssignmentLValue(
const clang::CompoundAssignOperator* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3895
Parameters
- const clang::CompoundAssignOperator* E
¶clang::CodeGen::CodeGenFunction::ComplexPairTy
EmitComplexExpr(const clang::Expr* E,
bool IgnoreReal = false,
bool IgnoreImag = false)
clang::CodeGen::CodeGenFunction::ComplexPairTy
EmitComplexExpr(const clang::Expr* E,
bool IgnoreReal = false,
bool IgnoreImag = false)
Description
EmitComplexExpr - Emit the computation of the specified expression of complex type, returning the result.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4397
Parameters
- const clang::Expr* E
- bool IgnoreReal = false
- bool IgnoreImag = false
¶void EmitComplexExprIntoLValue(
const clang::Expr* E,
clang::CodeGen::LValue dest,
bool isInit)
void EmitComplexExprIntoLValue(
const clang::Expr* E,
clang::CodeGen::LValue dest,
bool isInit)
Description
EmitComplexExprIntoLValue - Emit the given expression of complex type and place its result into the specified l-value.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4403
Parameters
- const clang::Expr* E
- clang::CodeGen::LValue dest
- bool isInit
¶clang::CodeGen::CodeGenFunction::ComplexPairTy
EmitComplexPrePostIncDec(
const clang::UnaryOperator* E,
clang::CodeGen::LValue LV,
bool isInc,
bool isPre)
clang::CodeGen::CodeGenFunction::ComplexPairTy
EmitComplexPrePostIncDec(
const clang::UnaryOperator* E,
clang::CodeGen::LValue LV,
bool isInc,
bool isPre)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3012
Parameters
- const clang::UnaryOperator* E
- clang::CodeGen::LValue LV
- bool isInc
- bool isPre
¶llvm::Value* EmitComplexToScalarConversion(
clang::CodeGen::CodeGenFunction::ComplexPairTy
Src,
clang::QualType SrcTy,
clang::QualType DstTy,
clang::SourceLocation Loc)
llvm::Value* EmitComplexToScalarConversion(
clang::CodeGen::CodeGenFunction::ComplexPairTy
Src,
clang::QualType SrcTy,
clang::QualType DstTy,
clang::SourceLocation Loc)
Description
Emit a conversion from the specified complex type to the specified destination type, where the destination type is an LLVM scalar type.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4374
Parameters
- clang::CodeGen::CodeGenFunction::ComplexPairTy Src
- clang::QualType SrcTy
- clang::QualType DstTy
- clang::SourceLocation Loc
¶clang::CodeGen::LValue
EmitCompoundAssignmentLValue(
const clang::CompoundAssignOperator* E)
clang::CodeGen::LValue
EmitCompoundAssignmentLValue(
const clang::CompoundAssignOperator* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3901
Parameters
- const clang::CompoundAssignOperator* E
¶clang::CodeGen::LValue EmitCompoundLiteralLValue(
const clang::CompoundLiteralExpr* E)
clang::CodeGen::LValue EmitCompoundLiteralLValue(
const clang::CompoundLiteralExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3919
Parameters
- const clang::CompoundLiteralExpr* E
¶clang::CodeGen::Address EmitCompoundStmt(
const clang::CompoundStmt& S,
bool GetLast = false,
clang::CodeGen::AggValueSlot AVS =
AggValueSlot::ignored())
clang::CodeGen::Address EmitCompoundStmt(
const clang::CompoundStmt& S,
bool GetLast = false,
clang::CodeGen::AggValueSlot AVS =
AggValueSlot::ignored())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3225
Parameters
- const clang::CompoundStmt& S
- bool GetLast = false
- clang::CodeGen::AggValueSlot AVS = AggValueSlot::ignored()
¶clang::CodeGen::Address
EmitCompoundStmtWithoutScope(
const clang::CompoundStmt& S,
bool GetLast = false,
clang::CodeGen::AggValueSlot AVS =
AggValueSlot::ignored())
clang::CodeGen::Address
EmitCompoundStmtWithoutScope(
const clang::CompoundStmt& S,
bool GetLast = false,
clang::CodeGen::AggValueSlot AVS =
AggValueSlot::ignored())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3227
Parameters
- const clang::CompoundStmt& S
- bool GetLast = false
- clang::CodeGen::AggValueSlot AVS = AggValueSlot::ignored()
¶clang::CodeGen::LValue
EmitConditionalOperatorLValue(
const clang::AbstractConditionalOperator* E)
clang::CodeGen::LValue
EmitConditionalOperatorLValue(
const clang::AbstractConditionalOperator* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3922
Parameters
- const clang::AbstractConditionalOperator* E
¶void EmitConstructorBody(
clang::CodeGen::FunctionArgList& Args)
void EmitConstructorBody(
clang::CodeGen::FunctionArgList& Args)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2214
Parameters
¶void EmitContinueStmt(
const clang::ContinueStmt& S)
void EmitContinueStmt(
const clang::ContinueStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3250
Parameters
- const clang::ContinueStmt& S
¶void EmitCoreturnStmt(
const clang::CoreturnStmt& S)
void EmitCoreturnStmt(
const clang::CoreturnStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3264
Parameters
- const clang::CoreturnStmt& S
¶void EmitCoroutineBody(
const clang::CoroutineBodyStmt& S)
void EmitCoroutineBody(
const clang::CoroutineBodyStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3263
Parameters
- const clang::CoroutineBodyStmt& S
¶clang::CodeGen::RValue EmitCoroutineIntrinsic(
const clang::CallExpr* E,
unsigned int IID)
clang::CodeGen::RValue EmitCoroutineIntrinsic(
const clang::CallExpr* E,
unsigned int IID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3273
Parameters
- const clang::CallExpr* E
- unsigned int IID
¶clang::CodeGen::RValue EmitCoyieldExpr(
const clang::CoyieldExpr& E,
clang::CodeGen::AggValueSlot aggSlot =
AggValueSlot::ignored(),
bool ignoreResult = false)
clang::CodeGen::RValue EmitCoyieldExpr(
const clang::CoyieldExpr& E,
clang::CodeGen::AggValueSlot aggSlot =
AggValueSlot::ignored(),
bool ignoreResult = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3269
Parameters
- const clang::CoyieldExpr& E
- clang::CodeGen::AggValueSlot aggSlot = AggValueSlot::ignored()
- bool ignoreResult = false
¶clang::CodeGen::LValue EmitCoyieldLValue(
const clang::CoyieldExpr* E)
clang::CodeGen::LValue EmitCoyieldLValue(
const clang::CoyieldExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3272
Parameters
- const clang::CoyieldExpr* E
¶void EmitCtorPrologue(
const clang::CXXConstructorDecl* CD,
clang::CXXCtorType Type,
clang::CodeGen::FunctionArgList& Args)
void EmitCtorPrologue(
const clang::CXXConstructorDecl* CD,
clang::CXXCtorType Type,
clang::CodeGen::FunctionArgList& Args)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2261
Parameters
- const clang::CXXConstructorDecl* CD
- clang::CXXCtorType Type
- clang::CodeGen::FunctionArgList& Args
¶void EmitDecl(const clang::Decl& D)
void EmitDecl(const clang::Decl& D)
Description
EmitDecl - Emit a declaration. This function can be called with a null (unreachable) insert point.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3029
Parameters
- const clang::Decl& D
¶void EmitDeclMetadata()
void EmitDeclMetadata()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4801
¶void EmitDeclRefExprDbgValue(
const clang::DeclRefExpr* E,
const clang::APValue& Init)
void EmitDeclRefExprDbgValue(
const clang::DeclRefExpr* E,
const clang::APValue& Init)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3998
Parameters
- const clang::DeclRefExpr* E
- const clang::APValue& Init
¶clang::CodeGen::LValue EmitDeclRefLValue(
const clang::DeclRefExpr* E)
clang::CodeGen::LValue EmitDeclRefLValue(
const clang::DeclRefExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3906
Parameters
- const clang::DeclRefExpr* E
¶void EmitDeclStmt(const clang::DeclStmt& S)
void EmitDeclStmt(const clang::DeclStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3248
Parameters
- const clang::DeclStmt& S
¶void EmitDefaultStmt(
const clang::DefaultStmt& S,
ArrayRef<const clang::Attr*> Attrs)
void EmitDefaultStmt(
const clang::DefaultStmt& S,
ArrayRef<const clang::Attr*> Attrs)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3252
Parameters
- const clang::DefaultStmt& S
- ArrayRef<const clang::Attr*> Attrs
¶void EmitDelegateCXXConstructorCall(
const clang::CXXConstructorDecl* Ctor,
clang::CXXCtorType CtorType,
const clang::CodeGen::FunctionArgList& Args,
clang::SourceLocation Loc)
void EmitDelegateCXXConstructorCall(
const clang::CXXConstructorDecl* Ctor,
clang::CXXCtorType CtorType,
const clang::CodeGen::FunctionArgList& Args,
clang::SourceLocation Loc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2847
Parameters
- const clang::CXXConstructorDecl* Ctor
- clang::CXXCtorType CtorType
- const clang::CodeGen::FunctionArgList& Args
- clang::SourceLocation Loc
¶void EmitDelegateCallArg(
clang::CodeGen::CallArgList& args,
const clang::VarDecl* param,
clang::SourceLocation loc)
void EmitDelegateCallArg(
clang::CodeGen::CallArgList& args,
const clang::VarDecl* param,
clang::SourceLocation loc)
Description
EmitDelegateCallArg - We are performing a delegate call; that is, the current function is delegating to another one. Produce a r-value suitable for passing the given parameter.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4650
Parameters
- clang::CodeGen::CallArgList& args
- const clang::VarDecl* param
- clang::SourceLocation loc
¶void EmitDelegatingCXXConstructorCall(
const clang::CXXConstructorDecl* Ctor,
const clang::CodeGen::FunctionArgList& Args)
void EmitDelegatingCXXConstructorCall(
const clang::CXXConstructorDecl* Ctor,
const clang::CodeGen::FunctionArgList& Args)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2855
Parameters
- const clang::CXXConstructorDecl* Ctor
- const clang::CodeGen::FunctionArgList& Args
¶void EmitDeleteCall(
const clang::FunctionDecl* DeleteFD,
llvm::Value* Ptr,
clang::QualType DeleteTy,
llvm::Value* NumElements = nullptr,
clang::CharUnits CookieSize =
clang::CharUnits())
void EmitDeleteCall(
const clang::FunctionDecl* DeleteFD,
llvm::Value* Ptr,
clang::QualType DeleteTy,
llvm::Value* NumElements = nullptr,
clang::CharUnits CookieSize =
clang::CharUnits())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2936
Parameters
- const clang::FunctionDecl* DeleteFD
- llvm::Value* Ptr
- clang::QualType DeleteTy
- llvm::Value* NumElements = nullptr
- clang::CharUnits CookieSize = clang::CharUnits()
¶void EmitDestructorBody(
clang::CodeGen::FunctionArgList& Args)
void EmitDestructorBody(
clang::CodeGen::FunctionArgList& Args)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2215
Parameters
¶void EmitDoStmt(
const clang::DoStmt& S,
ArrayRef<const clang::Attr*> Attrs = None)
void EmitDoStmt(
const clang::DoStmt& S,
ArrayRef<const clang::Attr*> Attrs = None)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3244
Parameters
- const clang::DoStmt& S
- ArrayRef<const clang::Attr*> Attrs = None
¶llvm::Value* EmitDynamicCast(
clang::CodeGen::Address V,
const clang::CXXDynamicCastExpr* DCE)
llvm::Value* EmitDynamicCast(
clang::CodeGen::Address V,
const clang::CXXDynamicCastExpr* DCE)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2944
Parameters
- clang::CodeGen::Address V
- const clang::CXXDynamicCastExpr* DCE
¶void EmitEndEHSpec(const clang::Decl* D)
void EmitEndEHSpec(const clang::Decl* D)
Description
EmitEndEHSpec - Emit the end of the exception spec.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2388
Parameters
- const clang::Decl* D
¶void EmitExprAsInit(const clang::Expr* init,
const clang::ValueDecl* D,
clang::CodeGen::LValue lvalue,
bool capturedByInit)
void EmitExprAsInit(const clang::Expr* init,
const clang::ValueDecl* D,
clang::CodeGen::LValue lvalue,
bool capturedByInit)
Description
EmitExprAsInit - Emits the code necessary to initialize a location in memory with the given initializer.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2664
Parameters
- const clang::Expr* init
- const clang::ValueDecl* D
- clang::CodeGen::LValue lvalue
- bool capturedByInit
¶clang::CodeGen::LValue EmitExtVectorElementExpr(
const clang::ExtVectorElementExpr* E)
clang::CodeGen::LValue EmitExtVectorElementExpr(
const clang::ExtVectorElementExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3916
Parameters
- const clang::ExtVectorElementExpr* E
¶clang::CodeGen::Address
EmitExtVectorElementLValue(
clang::CodeGen::LValue V)
clang::CodeGen::Address
EmitExtVectorElementLValue(
clang::CodeGen::LValue V)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3927
Parameters
¶void EmitExtendGCLifetime(llvm::Value* object)
void EmitExtendGCLifetime(llvm::Value* object)
Description
EmitExtendGCLifetime - Given a pointer to an Objective-C object, make sure it survives garbage collection until this point.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4393
Parameters
- llvm::Value* object
¶clang::CodeGen::Address EmitFieldAnnotations(
const clang::FieldDecl* D,
clang::CodeGen::Address V)
clang::CodeGen::Address EmitFieldAnnotations(
const clang::FieldDecl* D,
clang::CodeGen::Address V)
Description
Emit field annotations for the given field & value. Returns the annotation result.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4509
Parameters
- const clang::FieldDecl* D
- clang::CodeGen::Address V
¶void EmitForStmt(
const clang::ForStmt& S,
ArrayRef<const clang::Attr*> Attrs = None)
void EmitForStmt(
const clang::ForStmt& S,
ArrayRef<const clang::Attr*> Attrs = None)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3245
Parameters
- const clang::ForStmt& S
- ArrayRef<const clang::Attr*> Attrs = None
¶void EmitForwardingCallToLambda(
const clang::CXXMethodDecl*
LambdaCallOperator,
clang::CodeGen::CallArgList& CallArgs)
void EmitForwardingCallToLambda(
const clang::CXXMethodDecl*
LambdaCallOperator,
clang::CodeGen::CallArgList& CallArgs)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2220
Parameters
- const clang::CXXMethodDecl* LambdaCallOperator
- clang::CodeGen::CallArgList& CallArgs
¶llvm::Value* EmitFromMemory(llvm::Value* Value,
clang::QualType Ty)
llvm::Value* EmitFromMemory(llvm::Value* Value,
clang::QualType Ty)
Description
EmitFromMemory - Change a scalar value from its memory representation to its value representation.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3815
Parameters
- llvm::Value* Value
- clang::QualType Ty
¶void EmitFunctionBody(const clang::Stmt* Body)
void EmitFunctionBody(const clang::Stmt* Body)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2217
Parameters
- const clang::Stmt* Body
¶void EmitFunctionEpilog(
const clang::CodeGen::CGFunctionInfo& FI,
bool EmitRetDbgLoc,
clang::SourceLocation EndLoc)
void EmitFunctionEpilog(
const clang::CodeGen::CGFunctionInfo& FI,
bool EmitRetDbgLoc,
clang::SourceLocation EndLoc)
Description
EmitFunctionEpilog - Emit the target specific LLVM code to return the given temporary.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2378
Parameters
- const clang::CodeGen::CGFunctionInfo& FI
- bool EmitRetDbgLoc
- clang::SourceLocation EndLoc
¶void EmitFunctionProlog(
const clang::CodeGen::CGFunctionInfo& FI,
llvm::Function* Fn,
const clang::CodeGen::FunctionArgList& Args)
void EmitFunctionProlog(
const clang::CodeGen::CGFunctionInfo& FI,
llvm::Function* Fn,
const clang::CodeGen::FunctionArgList& Args)
Description
EmitFunctionProlog - Emit the target specific LLVM code to load the arguments for the given function. This is also responsible for naming the LLVM function arguments.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2372
Parameters
- const clang::CodeGen::CGFunctionInfo& FI
- llvm::Function* Fn
- const clang::CodeGen::FunctionArgList& Args
¶void EmitGotoStmt(const clang::GotoStmt& S)
void EmitGotoStmt(const clang::GotoStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3238
Parameters
- const clang::GotoStmt& S
¶llvm::Value* EmitHexagonBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitHexagonBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4252
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶void EmitIfStmt(const clang::IfStmt& S)
void EmitIfStmt(const clang::IfStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3240
Parameters
- const clang::IfStmt& S
¶void EmitIgnoredConditionalOperator(
const clang::AbstractConditionalOperator* E)
void EmitIgnoredConditionalOperator(
const clang::AbstractConditionalOperator* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3921
Parameters
- const clang::AbstractConditionalOperator* E
¶void EmitIgnoredExpr(const clang::Expr* E)
void EmitIgnoredExpr(const clang::Expr* E)
Description
EmitIgnoredExpr - Emit an expression in a context which ignores the result.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2630
Parameters
- const clang::Expr* E
¶void EmitIndirectGotoStmt(
const clang::IndirectGotoStmt& S)
void EmitIndirectGotoStmt(
const clang::IndirectGotoStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3239
Parameters
- const clang::IndirectGotoStmt& S
¶void EmitInheritedCXXConstructorCall(
const clang::CXXConstructorDecl* D,
bool ForVirtualBase,
clang::CodeGen::Address This,
bool InheritedFromVBase,
const clang::CXXInheritedCtorInitExpr* E)
void EmitInheritedCXXConstructorCall(
const clang::CXXConstructorDecl* D,
bool ForVirtualBase,
clang::CodeGen::Address This,
bool InheritedFromVBase,
const clang::CXXInheritedCtorInitExpr* E)
Description
Emit a call to a constructor inherited from a base class, passing the current constructor's arguments along unmodified (without even making a copy).
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2871
Parameters
- const clang::CXXConstructorDecl* D
- bool ForVirtualBase
- clang::CodeGen::Address This
- bool InheritedFromVBase
- const clang::CXXInheritedCtorInitExpr* E
¶clang::CodeGen::LValue EmitInitListLValue(
const clang::InitListExpr* E)
clang::CodeGen::LValue EmitInitListLValue(
const clang::InitListExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3920
Parameters
- const clang::InitListExpr* E
¶void EmitInitializerForField(
clang::FieldDecl* Field,
clang::CodeGen::LValue LHS,
clang::Expr* Init)
void EmitInitializerForField(
clang::FieldDecl* Field,
clang::CodeGen::LValue LHS,
clang::Expr* Init)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2264
Parameters
- clang::FieldDecl* Field
- clang::CodeGen::LValue LHS
- clang::Expr* Init
¶void EmitInlinedInheritingCXXConstructorCall(
const clang::CXXConstructorDecl* Ctor,
clang::CXXCtorType CtorType,
bool ForVirtualBase,
bool Delegating,
clang::CodeGen::CallArgList& Args)
void EmitInlinedInheritingCXXConstructorCall(
const clang::CXXConstructorDecl* Ctor,
clang::CXXCtorType CtorType,
bool ForVirtualBase,
bool Delegating,
clang::CodeGen::CallArgList& Args)
Description
Emit a call to an inheriting constructor (that is, one that invokes a constructor inherited from a base class) by inlining its definition. This is necessary if the ABI does not support forwarding the arguments to the base class constructor (because they're variadic or similar).
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2862
Parameters
- const clang::CXXConstructorDecl* Ctor
- clang::CXXCtorType CtorType
- bool ForVirtualBase
- bool Delegating
- clang::CodeGen::CallArgList& Args
¶void EmitInvariantStart(llvm::Constant* Addr,
clang::CharUnits Size)
void EmitInvariantStart(llvm::Constant* Addr,
clang::CharUnits Size)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4423
Parameters
- llvm::Constant* Addr
- clang::CharUnits Size
¶llvm::Value* EmitIvarOffset(
const clang::ObjCInterfaceDecl* Interface,
const clang::ObjCIvarDecl* Ivar)
llvm::Value* EmitIvarOffset(
const clang::ObjCInterfaceDecl* Interface,
const clang::ObjCIvarDecl* Ivar)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3973
Parameters
- const clang::ObjCInterfaceDecl* Interface
- const clang::ObjCIvarDecl* Ivar
¶void EmitKernelMetadata(
const clang::FunctionDecl* FD,
llvm::Function* Fn)
void EmitKernelMetadata(
const clang::FunctionDecl* FD,
llvm::Function* Fn)
Description
Add OpenCL kernel arg metadata and the kernel attribute metadata to the function metadata.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1976
Parameters
- const clang::FunctionDecl* FD
- llvm::Function* Fn
¶clang::CodeGen::LValue EmitLValue(
const clang::Expr* E)
clang::CodeGen::LValue EmitLValue(
const clang::Expr* E)
Description
EmitLValue - Emit code to compute a designator that specifies the location of the expression. This can return one of two things: a simple address or a bitfield reference. In either case, the LLVM Value* in the LValue structure is guaranteed to be an LLVM pointer type. If this returns a bitfield reference, nothing about the pointee type of the LLVM value is known: For example, it may not be a pointer to an integer. If this returns a normal address, and if the lvalue's C type is fixed size, this method guarantees that the returned pointer type will point to an LLVM type of the same size of the lvalue's type. If the lvalue has a variable length type, this is not possible.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3771
Parameters
- const clang::Expr* E
¶clang::CodeGen::LValue EmitLValueForField(
clang::CodeGen::LValue Base,
const clang::FieldDecl* Field)
clang::CodeGen::LValue EmitLValueForField(
clang::CodeGen::LValue Base,
const clang::FieldDecl* Field)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3975
Parameters
- clang::CodeGen::LValue Base
- const clang::FieldDecl* Field
¶clang::CodeGen::LValue
EmitLValueForFieldInitialization(
clang::CodeGen::LValue Base,
const clang::FieldDecl* Field)
clang::CodeGen::LValue
EmitLValueForFieldInitialization(
clang::CodeGen::LValue Base,
const clang::FieldDecl* Field)
Description
EmitLValueForFieldInitialization - Like EmitLValueForField, except that if the Field is a reference, this will return the address of the reference and not the address of the value stored in the reference.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3981
Parameters
- clang::CodeGen::LValue Base
- const clang::FieldDecl* Field
¶clang::CodeGen::LValue EmitLValueForIvar(
clang::QualType ObjectTy,
llvm::Value* Base,
const clang::ObjCIvarDecl* Ivar,
unsigned int CVRQualifiers)
clang::CodeGen::LValue EmitLValueForIvar(
clang::QualType ObjectTy,
llvm::Value* Base,
const clang::ObjCIvarDecl* Ivar,
unsigned int CVRQualifiers)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3984
Parameters
- clang::QualType ObjectTy
- llvm::Value* Base
- const clang::ObjCIvarDecl* Ivar
- unsigned int CVRQualifiers
¶clang::CodeGen::LValue EmitLValueForLambdaField(
const clang::FieldDecl* Field)
clang::CodeGen::LValue EmitLValueForLambdaField(
const clang::FieldDecl* Field)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3976
Parameters
- const clang::FieldDecl* Field
¶void EmitLabel(const clang::LabelDecl* D)
void EmitLabel(const clang::LabelDecl* D)
Description
EmitLabel - Emit the block for the given label. It is legal to call this function even if there is no current insertion point.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3234
Parameters
- const clang::LabelDecl* D
¶void EmitLabelStmt(const clang::LabelStmt& S)
void EmitLabelStmt(const clang::LabelStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3236
Parameters
- const clang::LabelStmt& S
¶void EmitLambdaBlockInvokeBody()
void EmitLambdaBlockInvokeBody()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2222
¶void EmitLambdaDelegatingInvokeBody(
const clang::CXXMethodDecl* MD)
void EmitLambdaDelegatingInvokeBody(
const clang::CXXMethodDecl* MD)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2223
Parameters
- const clang::CXXMethodDecl* MD
¶void EmitLambdaStaticInvokeBody(
const clang::CXXMethodDecl* MD)
void EmitLambdaStaticInvokeBody(
const clang::CXXMethodDecl* MD)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2224
Parameters
- const clang::CXXMethodDecl* MD
¶void EmitLambdaVLACapture(
const clang::VariableArrayType* VAT,
clang::CodeGen::LValue LV)
void EmitLambdaVLACapture(
const clang::VariableArrayType* VAT,
clang::CodeGen::LValue LV)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2225
Parameters
- const clang::VariableArrayType* VAT
- clang::CodeGen::LValue LV
¶llvm::BasicBlock* EmitLandingPad()
llvm::BasicBlock* EmitLandingPad()
Description
Emits a landing pad for the current EH stack.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:679
¶void EmitLifetimeEnd(llvm::Value* Size,
llvm::Value* Addr)
void EmitLifetimeEnd(llvm::Value* Size,
llvm::Value* Addr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2931
Parameters
- llvm::Value* Size
- llvm::Value* Addr
¶llvm::Value* EmitLifetimeStart(
llvm::TypeSize Size,
llvm::Value* Addr)
llvm::Value* EmitLifetimeStart(
llvm::TypeSize Size,
llvm::Value* Addr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2930
Parameters
- llvm::TypeSize Size
- llvm::Value* Addr
¶clang::CodeGen::RValue EmitLoadOfBitfieldLValue(
clang::CodeGen::LValue LV,
clang::SourceLocation Loc)
clang::CodeGen::RValue EmitLoadOfBitfieldLValue(
clang::CodeGen::LValue LV,
clang::SourceLocation Loc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3874
Parameters
¶clang::CodeGen::CodeGenFunction::ComplexPairTy
EmitLoadOfComplex(clang::CodeGen::LValue src,
clang::SourceLocation loc)
clang::CodeGen::CodeGenFunction::ComplexPairTy
EmitLoadOfComplex(clang::CodeGen::LValue src,
clang::SourceLocation loc)
Description
EmitLoadOfComplex - Load a complex number from the specified l-value.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4409
Parameters
¶clang::CodeGen::RValue
EmitLoadOfExtVectorElementLValue(
clang::CodeGen::LValue V)
clang::CodeGen::RValue
EmitLoadOfExtVectorElementLValue(
clang::CodeGen::LValue V)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3873
Parameters
¶clang::CodeGen::RValue EmitLoadOfGlobalRegLValue(
clang::CodeGen::LValue LV)
clang::CodeGen::RValue EmitLoadOfGlobalRegLValue(
clang::CodeGen::LValue LV)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3875
Parameters
¶clang::CodeGen::RValue EmitLoadOfLValue(
clang::CodeGen::LValue V,
clang::SourceLocation Loc)
clang::CodeGen::RValue EmitLoadOfLValue(
clang::CodeGen::LValue V,
clang::SourceLocation Loc)
Description
EmitLoadOfLValue - Given an expression that represents a value lvalue, this method emits the address of the lvalue, then loads the result as an rvalue, returning the rvalue.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3872
Parameters
¶clang::CodeGen::Address EmitLoadOfPointer(
clang::CodeGen::Address Ptr,
const clang::PointerType* PtrTy,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
clang::CodeGen::Address EmitLoadOfPointer(
clang::CodeGen::Address Ptr,
const clang::PointerType* PtrTy,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
Description
Load a pointer with type \p PtrTy stored at address \p Ptr. Note that \p PtrTy is the type of the loaded pointer, not the addresses it is loaded from.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2532
Parameters
- clang::CodeGen::Address Ptr
- const clang::PointerType* PtrTy
- clang::CodeGen::LValueBaseInfo* BaseInfo = nullptr
- clang::CodeGen::TBAAAccessInfo* TBAAInfo = nullptr
¶clang::CodeGen::LValue EmitLoadOfPointerLValue(
clang::CodeGen::Address Ptr,
const clang::PointerType* PtrTy)
clang::CodeGen::LValue EmitLoadOfPointerLValue(
clang::CodeGen::Address Ptr,
const clang::PointerType* PtrTy)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2535
Parameters
- clang::CodeGen::Address Ptr
- const clang::PointerType* PtrTy
¶clang::CodeGen::Address EmitLoadOfReference(
clang::CodeGen::LValue RefLVal,
clang::CodeGen::LValueBaseInfo*
PointeeBaseInfo = nullptr,
clang::CodeGen::TBAAAccessInfo*
PointeeTBAAInfo = nullptr)
clang::CodeGen::Address EmitLoadOfReference(
clang::CodeGen::LValue RefLVal,
clang::CodeGen::LValueBaseInfo*
PointeeBaseInfo = nullptr,
clang::CodeGen::TBAAAccessInfo*
PointeeTBAAInfo = nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2517
Parameters
- clang::CodeGen::LValue RefLVal
- clang::CodeGen::LValueBaseInfo* PointeeBaseInfo = nullptr
- clang::CodeGen::TBAAAccessInfo* PointeeTBAAInfo = nullptr
¶clang::CodeGen::LValue EmitLoadOfReferenceLValue(
clang::CodeGen::Address RefAddr,
clang::QualType RefTy,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type)
clang::CodeGen::LValue EmitLoadOfReferenceLValue(
clang::CodeGen::Address RefAddr,
clang::QualType RefTy,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2521
Parameters
- clang::CodeGen::Address RefAddr
- clang::QualType RefTy
- clang::CodeGen::AlignmentSource Source = AlignmentSource::Type
¶clang::CodeGen::LValue EmitLoadOfReferenceLValue(
clang::CodeGen::LValue RefLVal)
clang::CodeGen::LValue EmitLoadOfReferenceLValue(
clang::CodeGen::LValue RefLVal)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2520
Parameters
- clang::CodeGen::LValue RefLVal
¶llvm::Value* EmitLoadOfScalar(
clang::CodeGen::Address Addr,
bool Volatile,
clang::QualType Ty,
clang::SourceLocation Loc,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type,
bool isNontemporal = false)
llvm::Value* EmitLoadOfScalar(
clang::CodeGen::Address Addr,
bool Volatile,
clang::QualType Ty,
clang::SourceLocation Loc,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type,
bool isNontemporal = false)
Description
EmitLoadOfScalar - Load a scalar value from an address, taking care to appropriately convert from the memory representation to the LLVM value representation.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3827
Parameters
- clang::CodeGen::Address Addr
- bool Volatile
- clang::QualType Ty
- clang::SourceLocation Loc
- clang::CodeGen::AlignmentSource Source = AlignmentSource::Type
- bool isNontemporal = false
¶llvm::Value* EmitLoadOfScalar(
clang::CodeGen::Address Addr,
bool Volatile,
clang::QualType Ty,
clang::SourceLocation Loc,
clang::CodeGen::LValueBaseInfo BaseInfo,
clang::CodeGen::TBAAAccessInfo TBAAInfo,
bool isNontemporal = false)
llvm::Value* EmitLoadOfScalar(
clang::CodeGen::Address Addr,
bool Volatile,
clang::QualType Ty,
clang::SourceLocation Loc,
clang::CodeGen::LValueBaseInfo BaseInfo,
clang::CodeGen::TBAAAccessInfo TBAAInfo,
bool isNontemporal = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3835
Parameters
- clang::CodeGen::Address Addr
- bool Volatile
- clang::QualType Ty
- clang::SourceLocation Loc
- clang::CodeGen::LValueBaseInfo BaseInfo
- clang::CodeGen::TBAAAccessInfo TBAAInfo
- bool isNontemporal = false
¶llvm::Value* EmitLoadOfScalar(
clang::CodeGen::LValue lvalue,
clang::SourceLocation Loc)
llvm::Value* EmitLoadOfScalar(
clang::CodeGen::LValue lvalue,
clang::SourceLocation Loc)
Description
EmitLoadOfScalar - Load a scalar value from an address, taking care to appropriately convert from the memory representation to the LLVM value representation. The l-value must be a simple l-value.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3844
Parameters
- clang::CodeGen::LValue lvalue
- clang::SourceLocation Loc
¶clang::CodeGen::Address EmitMSVAListRef(
const clang::Expr* E)
clang::CodeGen::Address EmitMSVAListRef(
const clang::Expr* E)
Description
Emit a "reference" to a __builtin_ms_va_list; this is always the value of the expression, because a __builtin_ms_va_list is a pointer to a char.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2649
Parameters
- const clang::Expr* E
¶llvm::Value* EmitMSVCBuiltinExpr(
clang::CodeGen::CodeGenFunction::MSVCIntrin
BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitMSVCBuiltinExpr(
clang::CodeGen::CodeGenFunction::MSVCIntrin
BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4260
Parameters
- clang::CodeGen::CodeGenFunction::MSVCIntrin BuiltinID
- const clang::CallExpr* E
¶clang::CodeGen::LValue
EmitMaterializeTemporaryExpr(
const clang::MaterializeTemporaryExpr* E)
clang::CodeGen::LValue
EmitMaterializeTemporaryExpr(
const clang::MaterializeTemporaryExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3924
Parameters
- const clang::MaterializeTemporaryExpr* E
¶clang::CodeGen::LValue EmitMatrixSubscriptExpr(
const clang::MatrixSubscriptExpr* E)
clang::CodeGen::LValue EmitMatrixSubscriptExpr(
const clang::MatrixSubscriptExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3913
Parameters
- const clang::MatrixSubscriptExpr* E
¶clang::CodeGen::LValue EmitMemberExpr(
const clang::MemberExpr* E)
clang::CodeGen::LValue EmitMemberExpr(
const clang::MemberExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3917
Parameters
- const clang::MemberExpr* E
¶void EmitMultiVersionResolver(
llvm::Function* Resolver,
ArrayRef<clang::CodeGen::CodeGenFunction::
MultiVersionResolverOption>
Options)
void EmitMultiVersionResolver(
llvm::Function* Resolver,
ArrayRef<clang::CodeGen::CodeGenFunction::
MultiVersionResolverOption>
Options)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4795
Parameters
- llvm::Function* Resolver
- ArrayRef<clang::CodeGen::CodeGenFunction:: MultiVersionResolverOption> Options
¶void EmitMustTailThunk(
clang::GlobalDecl GD,
llvm::Value* AdjustedThisPtr,
llvm::FunctionCallee Callee)
void EmitMustTailThunk(
clang::GlobalDecl GD,
llvm::Value* AdjustedThisPtr,
llvm::FunctionCallee Callee)
Description
Emit a musttail call for a thunk with a potentially adjusted this pointer.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2249
Parameters
- clang::GlobalDecl GD
- llvm::Value* AdjustedThisPtr
- llvm::FunctionCallee Callee
¶llvm::Value* EmitNVPTXBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitNVPTXBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4249
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶clang::CodeGen::RValue
EmitNVPTXDevicePrintfCallExpr(
const clang::CallExpr* E)
clang::CodeGen::RValue
EmitNVPTXDevicePrintfCallExpr(
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4120
Parameters
- const clang::CallExpr* E
¶llvm::Value* EmitNeonCall(
llvm::Function* F,
SmallVectorImpl<llvm::Value*>& O,
const char* name,
unsigned int shift = 0,
bool rightshift = false)
llvm::Value* EmitNeonCall(
llvm::Function* F,
SmallVectorImpl<llvm::Value*>& O,
const char* name,
unsigned int shift = 0,
bool rightshift = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4179
Parameters
- llvm::Function* F
- SmallVectorImpl<llvm::Value*>& O
- const char* name
- unsigned int shift = 0
- bool rightshift = false
¶llvm::Value* EmitNeonRShiftImm(llvm::Value* Vec,
llvm::Value* Amt,
llvm::Type* Ty,
bool usgn,
const char* name)
llvm::Value* EmitNeonRShiftImm(llvm::Value* Vec,
llvm::Value* Amt,
llvm::Type* Ty,
bool usgn,
const char* name)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4188
Parameters
- llvm::Value* Vec
- llvm::Value* Amt
- llvm::Type* Ty
- bool usgn
- const char* name
¶llvm::Value* EmitNeonShiftVector(
llvm::Value* V,
llvm::Type* Ty,
bool negateForRightShift)
llvm::Value* EmitNeonShiftVector(
llvm::Value* V,
llvm::Type* Ty,
bool negateForRightShift)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4186
Parameters
- llvm::Value* V
- llvm::Type* Ty
- bool negateForRightShift
¶llvm::Value* EmitNeonSplat(
llvm::Value* V,
llvm::Constant* Idx,
const llvm::ElementCount& Count)
llvm::Value* EmitNeonSplat(
llvm::Value* V,
llvm::Constant* Idx,
const llvm::ElementCount& Count)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4183
Parameters
- llvm::Value* V
- llvm::Constant* Idx
- const llvm::ElementCount& Count
¶llvm::Value* EmitNeonSplat(llvm::Value* V,
llvm::Constant* Idx)
llvm::Value* EmitNeonSplat(llvm::Value* V,
llvm::Constant* Idx)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4185
Parameters
- llvm::Value* V
- llvm::Constant* Idx
¶void EmitNewArrayInitializer(
const clang::CXXNewExpr* E,
clang::QualType elementType,
llvm::Type* ElementTy,
clang::CodeGen::Address NewPtr,
llvm::Value* NumElements,
llvm::Value* AllocSizeWithoutCookie)
void EmitNewArrayInitializer(
const clang::CXXNewExpr* E,
clang::QualType elementType,
llvm::Type* ElementTy,
clang::CodeGen::Address NewPtr,
llvm::Value* NumElements,
llvm::Value* AllocSizeWithoutCookie)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2917
Parameters
- const clang::CXXNewExpr* E
- clang::QualType elementType
- llvm::Type* ElementTy
- clang::CodeGen::Address NewPtr
- llvm::Value* NumElements
- llvm::Value* AllocSizeWithoutCookie
¶void EmitNonNullArgCheck(
clang::CodeGen::RValue RV,
clang::QualType ArgType,
clang::SourceLocation ArgLoc,
clang::CodeGen::CodeGenFunction::
AbstractCallee AC,
unsigned int ParmNum)
void EmitNonNullArgCheck(
clang::CodeGen::RValue RV,
clang::QualType ArgType,
clang::SourceLocation ArgLoc,
clang::CodeGen::CodeGenFunction::
AbstractCallee AC,
unsigned int ParmNum)
Description
Create a check for a function parameter that may potentially be declared as non-null.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4641
Parameters
- clang::CodeGen::RValue RV
- clang::QualType ArgType
- clang::SourceLocation ArgLoc
- clang::CodeGen::CodeGenFunction::AbstractCallee AC
- unsigned int ParmNum
¶llvm::Value* EmitNonNullRValueCheck(
clang::CodeGen::RValue RV,
clang::QualType T)
llvm::Value* EmitNonNullRValueCheck(
clang::CodeGen::RValue RV,
clang::QualType T)
Description
Create a check that a scalar RValue is non-null.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3739
Parameters
¶void EmitNoreturnRuntimeCallOrInvoke(
llvm::FunctionCallee callee,
ArrayRef<llvm::Value*> args)
void EmitNoreturnRuntimeCallOrInvoke(
llvm::FunctionCallee callee,
ArrayRef<llvm::Value*> args)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4050
Parameters
- llvm::FunctionCallee callee
- ArrayRef<llvm::Value*> args
¶llvm::CallInst* EmitNounwindRuntimeCall(
llvm::FunctionCallee callee,
const llvm::Twine& name = "")
llvm::CallInst* EmitNounwindRuntimeCall(
llvm::FunctionCallee callee,
const llvm::Twine& name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4033
Parameters
- llvm::FunctionCallee callee
- const llvm::Twine& name = ""
¶llvm::CallInst* EmitNounwindRuntimeCall(
llvm::FunctionCallee callee,
ArrayRef<llvm::Value*> args,
const llvm::Twine& name = "")
llvm::CallInst* EmitNounwindRuntimeCall(
llvm::FunctionCallee callee,
ArrayRef<llvm::Value*> args,
const llvm::Twine& name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4035
Parameters
- llvm::FunctionCallee callee
- ArrayRef<llvm::Value*> args
- const llvm::Twine& name = ""
¶void EmitNullInitialization(
clang::CodeGen::Address DestPtr,
clang::QualType Ty)
void EmitNullInitialization(
clang::CodeGen::Address DestPtr,
clang::QualType Ty)
Description
EmitNullInitialization - Generate code to set a value of the given type to null, If the type contains data member pointers, they will be initialized to -1 in accordance with the Itanium C++ ABI.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2748
Parameters
- clang::CodeGen::Address DestPtr
- clang::QualType Ty
¶void EmitNullabilityCheck(
clang::CodeGen::LValue LHS,
llvm::Value* RHS,
clang::SourceLocation Loc)
void EmitNullabilityCheck(
clang::CodeGen::LValue LHS,
llvm::Value* RHS,
clang::SourceLocation Loc)
Description
Given an assignment `*LHS = RHS`, emit a test that checks if \p RHS is nonnull, if \p LHS is marked _Nonnull.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4567
Parameters
¶void EmitOMPAggregateAssign(
clang::CodeGen::Address DestAddr,
clang::CodeGen::Address SrcAddr,
clang::QualType OriginalType,
const llvm::function_ref<
void(Address, Address)> CopyGen)
void EmitOMPAggregateAssign(
clang::CodeGen::Address DestAddr,
clang::CodeGen::Address SrcAddr,
clang::QualType OriginalType,
const llvm::function_ref<
void(Address, Address)> CopyGen)
Description
Perform element by element copying of arrays with type \a OriginalType from \a SrcAddr to \a DestAddr using copying procedure generated by \a CopyGen.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3359
Parameters
- clang::CodeGen::Address DestAddr
- Address of the destination array.
- clang::CodeGen::Address SrcAddr
- Address of the source array.
- clang::QualType OriginalType
- Type of destination and source arrays.
- const llvm::function_ref<void(Address, Address)> CopyGen
- Copying procedure that copies value of single array element to another single array element.
¶clang::CodeGen::LValue EmitOMPArraySectionExpr(
const clang::OMPArraySectionExpr* E,
bool IsLowerBound = true)
clang::CodeGen::LValue EmitOMPArraySectionExpr(
const clang::OMPArraySectionExpr* E,
bool IsLowerBound = true)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3914
Parameters
- const clang::OMPArraySectionExpr* E
- bool IsLowerBound = true
¶void EmitOMPAtomicDirective(
const clang::OMPAtomicDirective& S)
void EmitOMPAtomicDirective(
const clang::OMPAtomicDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3529
Parameters
- const clang::OMPAtomicDirective& S
¶std::pair<bool, RValue>
EmitOMPAtomicSimpleUpdateExpr(
clang::CodeGen::LValue X,
clang::CodeGen::RValue E,
clang::BinaryOperatorKind BO,
bool IsXLHSInRHSPart,
llvm::AtomicOrdering AO,
clang::SourceLocation Loc,
const llvm::function_ref<RValue(RValue)>
CommonGen)
std::pair<bool, RValue>
EmitOMPAtomicSimpleUpdateExpr(
clang::CodeGen::LValue X,
clang::CodeGen::RValue E,
clang::BinaryOperatorKind BO,
bool IsXLHSInRHSPart,
llvm::AtomicOrdering AO,
clang::SourceLocation Loc,
const llvm::function_ref<RValue(RValue)>
CommonGen)
Description
Emit atomic update code for constructs: \a X = \a X \a BO \a E or\a X = \a E \a BO \a E.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3390
Parameters
- clang::CodeGen::LValue X
- Value to be updated.
- clang::CodeGen::RValue E
- Update value.
- clang::BinaryOperatorKind BO
- Binary operation for update operation.
- bool IsXLHSInRHSPart
- true if \a X is LHS in RHS part of the update expression, false otherwise.
- llvm::AtomicOrdering AO
- Atomic ordering of the generated atomic instructions.
- clang::SourceLocation Loc
- const llvm::function_ref<RValue(RValue)> CommonGen
- Code generator for complex expressions that cannot be expressed through atomicrmw instruction.
Returns
<true , OldAtomicValue> if simple 'atomicrmw' instruction was generated, <false , RValue::get(nullptr)> otherwise.
¶void EmitOMPBarrierDirective(
const clang::OMPBarrierDirective& S)
void EmitOMPBarrierDirective(
const clang::OMPBarrierDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3522
Parameters
- const clang::OMPBarrierDirective& S
¶void EmitOMPCancelDirective(
const clang::OMPCancelDirective& S)
void EmitOMPCancelDirective(
const clang::OMPCancelDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3541
Parameters
- const clang::OMPCancelDirective& S
¶void EmitOMPCancellationPointDirective(
const clang::OMPCancellationPointDirective& S)
void EmitOMPCancellationPointDirective(
const clang::OMPCancellationPointDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3540
Parameters
- const clang::OMPCancellationPointDirective& S
¶void EmitOMPCanonicalLoop(
const clang::OMPCanonicalLoop* S)
void EmitOMPCanonicalLoop(
const clang::OMPCanonicalLoop* S)
Description
Emit an OMPCanonicalLoop using the OpenMPIRBuilder.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3630
Parameters
- const clang::OMPCanonicalLoop* S
¶llvm::CanonicalLoopInfo*
EmitOMPCollapsedCanonicalLoopNest(
const clang::Stmt* S,
int Depth)
llvm::CanonicalLoopInfo*
EmitOMPCollapsedCanonicalLoopNest(
const clang::Stmt* S,
int Depth)
Description
Emit the Stmt \p S and return its topmost canonical loop, if any. TODO: The \p Depth paramter is not yet implemented and must be 1. In the future it is meant to be the number of loops expected in the loop nests (usually specified by the "collapse" clause) that are collapsed to a single loop by this function.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3626
Parameters
- const clang::Stmt* S
- int Depth
¶void EmitOMPCopy(clang::QualType OriginalType,
clang::CodeGen::Address DestAddr,
clang::CodeGen::Address SrcAddr,
const clang::VarDecl* DestVD,
const clang::VarDecl* SrcVD,
const clang::Expr* Copy)
void EmitOMPCopy(clang::QualType OriginalType,
clang::CodeGen::Address DestAddr,
clang::CodeGen::Address SrcAddr,
const clang::VarDecl* DestVD,
const clang::VarDecl* SrcVD,
const clang::Expr* Copy)
Description
Emit proper copying of data from one variable to another.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3373
Parameters
- clang::QualType OriginalType
- Original type of the copied variables.
- clang::CodeGen::Address DestAddr
- Destination address.
- clang::CodeGen::Address SrcAddr
- Source address.
- const clang::VarDecl* DestVD
- Destination variable used in \a CopyExpr (for arrays, has type of the base array element).
- const clang::VarDecl* SrcVD
- Source variable used in \a CopyExpr (for arrays, has type of the base array element).
- const clang::Expr* Copy
- Actual copygin expression for copying data from \a SrcVD to \a DestVD.
¶bool EmitOMPCopyinClause(
const clang::OMPExecutableDirective& D)
bool EmitOMPCopyinClause(
const clang::OMPExecutableDirective& D)
Description
Emit code for copyin clause in \a D directive. The next code is generated at the start of outlined functions for directives:
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3415
Parameters
- const clang::OMPExecutableDirective& D
- OpenMP directive possibly with 'copyin' clause(s).
Returns
true if at least one copyin variable is found, false otherwise.
¶void EmitOMPCriticalDirective(
const clang::OMPCriticalDirective& S)
void EmitOMPCriticalDirective(
const clang::OMPCriticalDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3515
Parameters
- const clang::OMPCriticalDirective& S
¶void EmitOMPDepobjDirective(
const clang::OMPDepobjDirective& S)
void EmitOMPDepobjDirective(
const clang::OMPDepobjDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3526
Parameters
- const clang::OMPDepobjDirective& S
¶void EmitOMPDistributeDirective(
const clang::OMPDistributeDirective& S)
void EmitOMPDistributeDirective(
const clang::OMPDistributeDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3552
Parameters
- const clang::OMPDistributeDirective& S
¶void EmitOMPDistributeLoop(
const clang::OMPLoopDirective& S,
const clang::CodeGen::CodeGenFunction::
CodeGenLoopTy& CodeGenLoop,
clang::Expr* IncExpr)
void EmitOMPDistributeLoop(
const clang::OMPLoopDirective& S,
const clang::CodeGen::CodeGenFunction::
CodeGenLoopTy& CodeGenLoop,
clang::Expr* IncExpr)
Description
Emit code for the distribute loop-based directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3664
Parameters
- const clang::OMPLoopDirective& S
- const clang::CodeGen::CodeGenFunction:: CodeGenLoopTy& CodeGenLoop
- clang::Expr* IncExpr
¶void EmitOMPDistributeOuterLoop(
clang::OpenMPDistScheduleClauseKind
ScheduleKind,
const clang::OMPLoopDirective& S,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& LoopScope,
const clang::CodeGen::CodeGenFunction::
OMPLoopArguments& LoopArgs,
const clang::CodeGen::CodeGenFunction::
CodeGenLoopTy& CodeGenLoopContent)
void EmitOMPDistributeOuterLoop(
clang::OpenMPDistScheduleClauseKind
ScheduleKind,
const clang::OMPLoopDirective& S,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& LoopScope,
const clang::CodeGen::CodeGenFunction::
OMPLoopArguments& LoopArgs,
const clang::CodeGen::CodeGenFunction::
CodeGenLoopTy& CodeGenLoopContent)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3724
Parameters
- clang::OpenMPDistScheduleClauseKind ScheduleKind
- const clang::OMPLoopDirective& S
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& LoopScope
- const clang::CodeGen::CodeGenFunction:: OMPLoopArguments& LoopArgs
- const clang::CodeGen::CodeGenFunction:: CodeGenLoopTy& CodeGenLoopContent
¶void EmitOMPDistributeParallelForDirective(
const clang::
OMPDistributeParallelForDirective& S)
void EmitOMPDistributeParallelForDirective(
const clang::
OMPDistributeParallelForDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3553
Parameters
¶void EmitOMPDistributeParallelForSimdDirective(
const clang::
OMPDistributeParallelForSimdDirective& S)
void EmitOMPDistributeParallelForSimdDirective(
const clang::
OMPDistributeParallelForSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3555
Parameters
- const clang:: OMPDistributeParallelForSimdDirective& S
¶void EmitOMPDistributeSimdDirective(
const clang::OMPDistributeSimdDirective& S)
void EmitOMPDistributeSimdDirective(
const clang::OMPDistributeSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3557
Parameters
- const clang::OMPDistributeSimdDirective& S
¶bool EmitOMPFirstprivateClause(
const clang::OMPExecutableDirective& D,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope)
bool EmitOMPFirstprivateClause(
const clang::OMPExecutableDirective& D,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3394
Parameters
- const clang::OMPExecutableDirective& D
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& PrivateScope
¶void EmitOMPFlushDirective(
const clang::OMPFlushDirective& S)
void EmitOMPFlushDirective(
const clang::OMPFlushDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3525
Parameters
- const clang::OMPFlushDirective& S
¶void EmitOMPForDirective(
const clang::OMPForDirective& S)
void EmitOMPForDirective(
const clang::OMPForDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3508
Parameters
- const clang::OMPForDirective& S
¶void EmitOMPForOuterLoop(
const clang::OpenMPScheduleTy& ScheduleKind,
bool IsMonotonic,
const clang::OMPLoopDirective& S,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& LoopScope,
bool Ordered,
const clang::CodeGen::CodeGenFunction::
OMPLoopArguments& LoopArgs,
const clang::CodeGen::CodeGenFunction::
CodeGenDispatchBoundsTy& CGDispatchBounds)
void EmitOMPForOuterLoop(
const clang::OpenMPScheduleTy& ScheduleKind,
bool IsMonotonic,
const clang::OMPLoopDirective& S,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& LoopScope,
bool Ordered,
const clang::CodeGen::CodeGenFunction::
OMPLoopArguments& LoopArgs,
const clang::CodeGen::CodeGenFunction::
CodeGenDispatchBoundsTy& CGDispatchBounds)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3719
Parameters
- const clang::OpenMPScheduleTy& ScheduleKind
- bool IsMonotonic
- const clang::OMPLoopDirective& S
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& LoopScope
- bool Ordered
- const clang::CodeGen::CodeGenFunction:: OMPLoopArguments& LoopArgs
- const clang::CodeGen::CodeGenFunction:: CodeGenDispatchBoundsTy& CGDispatchBounds
¶void EmitOMPForSimdDirective(
const clang::OMPForSimdDirective& S)
void EmitOMPForSimdDirective(
const clang::OMPForSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3509
Parameters
- const clang::OMPForSimdDirective& S
¶void EmitOMPGenericLoopDirective(
const clang::OMPGenericLoopDirective& S)
void EmitOMPGenericLoopDirective(
const clang::OMPGenericLoopDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3577
Parameters
- const clang::OMPGenericLoopDirective& S
¶void EmitOMPInnerLoop(
const clang::OMPExecutableDirective& S,
bool RequiresCleanup,
const clang::Expr* LoopCond,
const clang::Expr* IncExpr,
const llvm::function_ref<
void(CodeGenFunction&)> BodyGen,
const llvm::function_ref<
void(CodeGenFunction&)> PostIncGen)
void EmitOMPInnerLoop(
const clang::OMPExecutableDirective& S,
bool RequiresCleanup,
const clang::Expr* LoopCond,
const clang::Expr* IncExpr,
const llvm::function_ref<
void(CodeGenFunction&)> BodyGen,
const llvm::function_ref<
void(CodeGenFunction&)> PostIncGen)
Description
Emit inner loop of the worksharing/simd construct.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3642
Parameters
- const clang::OMPExecutableDirective& S
- Directive, for which the inner loop must be emitted.
- bool RequiresCleanup
- true, if directive has some associated private variables.
- const clang::Expr* LoopCond
- Bollean condition for loop continuation.
- const clang::Expr* IncExpr
- Increment expression for loop control variable.
- const llvm::function_ref<void(CodeGenFunction&)> BodyGen
- Generator for the inner body of the inner loop.
- const llvm::function_ref<void(CodeGenFunction&)> PostIncGen
- Genrator for post-increment code (required for ordered loop directvies).
¶void EmitOMPInteropDirective(
const clang::OMPInteropDirective& S)
void EmitOMPInteropDirective(
const clang::OMPInteropDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3578
Parameters
- const clang::OMPInteropDirective& S
¶void EmitOMPLastprivateClauseFinal(
const clang::OMPExecutableDirective& D,
bool NoFinals,
llvm::Value* IsLastIterCond = nullptr)
void EmitOMPLastprivateClauseFinal(
const clang::OMPExecutableDirective& D,
bool NoFinals,
llvm::Value* IsLastIterCond = nullptr)
Description
Emit final copying of lastprivate values to original variables at the end of the worksharing or simd directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3436
Parameters
- const clang::OMPExecutableDirective& D
- Directive that has at least one 'lastprivate' directives.
- bool NoFinals
- llvm::Value* IsLastIterCond = nullptr
- Boolean condition that must be set to 'i1 true' if it is the last iteration of the loop code in associated directive, or to 'i1 false' otherwise. If this item is nullptr, no final check is required.
¶bool EmitOMPLastprivateClauseInit(
const clang::OMPExecutableDirective& D,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope)
bool EmitOMPLastprivateClauseInit(
const clang::OMPExecutableDirective& D,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope)
Description
Emit initial code for lastprivate variables. If some variable is not also firstprivate, then the default initialization is used. Otherwise initialization of this variable is performed by EmitOMPFirstprivateClause method.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3427
Parameters
- const clang::OMPExecutableDirective& D
- Directive that may have 'lastprivate' directives.
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& PrivateScope
- Private scope for capturing lastprivate variables for proper codegen in internal captured statement.
Returns
true if there is at least one lastprivate variable, false otherwise.
¶void EmitOMPLinearClause(
const clang::OMPLoopDirective& D,
CodeGenFunction::OMPPrivateScope&
PrivateScope)
void EmitOMPLinearClause(
const clang::OMPLoopDirective& D,
CodeGenFunction::OMPPrivateScope&
PrivateScope)
Description
Emit initial code for linear clauses.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3440
Parameters
- const clang::OMPLoopDirective& D
- CodeGenFunction::OMPPrivateScope& PrivateScope
¶void EmitOMPLinearClauseFinal(
const clang::OMPLoopDirective& D,
const llvm::function_ref<
llvm::Value*(CodeGenFunction&)> CondGen)
void EmitOMPLinearClauseFinal(
const clang::OMPLoopDirective& D,
const llvm::function_ref<
llvm::Value*(CodeGenFunction&)> CondGen)
Description
Emit final code for linear clauses.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3445
Parameters
- const clang::OMPLoopDirective& D
- const llvm::function_ref<llvm::Value*( CodeGenFunction&)> CondGen
- Optional conditional code for final part of codegen for linear clause.
¶bool EmitOMPLinearClauseInit(
const clang::OMPLoopDirective& D)
bool EmitOMPLinearClauseInit(
const clang::OMPLoopDirective& D)
Description
Emit initial code for linear variables. Creates private copies and initializes them with the values according to OpenMP standard.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3471
Parameters
- const clang::OMPLoopDirective& D
- Directive (possibly) with the 'linear' clause.
Returns
true if at least one linear variable is found that should be initialized with the value of the original variable, false otherwise.
¶void EmitOMPLoopBody(
const clang::OMPLoopDirective& D,
clang::CodeGen::CodeGenFunction::JumpDest
LoopExit)
void EmitOMPLoopBody(
const clang::OMPLoopDirective& D,
clang::CodeGen::CodeGenFunction::JumpDest
LoopExit)
Description
Helper for the OpenMP loop directives.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3654
Parameters
- const clang::OMPLoopDirective& D
- clang::CodeGen::CodeGenFunction::JumpDest LoopExit
¶void EmitOMPMaskedDirective(
const clang::OMPMaskedDirective& S)
void EmitOMPMaskedDirective(
const clang::OMPMaskedDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3514
Parameters
- const clang::OMPMaskedDirective& S
¶void EmitOMPMasterDirective(
const clang::OMPMasterDirective& S)
void EmitOMPMasterDirective(
const clang::OMPMasterDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3513
Parameters
- const clang::OMPMasterDirective& S
¶void EmitOMPMasterTaskLoopDirective(
const clang::OMPMasterTaskLoopDirective& S)
void EmitOMPMasterTaskLoopDirective(
const clang::OMPMasterTaskLoopDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3545
Parameters
- const clang::OMPMasterTaskLoopDirective& S
¶void EmitOMPMasterTaskLoopSimdDirective(
const clang::OMPMasterTaskLoopSimdDirective&
S)
void EmitOMPMasterTaskLoopSimdDirective(
const clang::OMPMasterTaskLoopSimdDirective&
S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3547
Parameters
¶void EmitOMPMetaDirective(
const clang::OMPMetaDirective& S)
void EmitOMPMetaDirective(
const clang::OMPMetaDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3503
Parameters
- const clang::OMPMetaDirective& S
¶void EmitOMPOrderedDirective(
const clang::OMPOrderedDirective& S)
void EmitOMPOrderedDirective(
const clang::OMPOrderedDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3528
Parameters
- const clang::OMPOrderedDirective& S
¶void EmitOMPOuterLoop(
bool DynamicOrOrdered,
bool IsMonotonic,
const clang::OMPLoopDirective& S,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& LoopScope,
const clang::CodeGen::CodeGenFunction::
OMPLoopArguments& LoopArgs,
const clang::CodeGen::CodeGenFunction::
CodeGenLoopTy& CodeGenLoop,
const clang::CodeGen::CodeGenFunction::
CodeGenOrderedTy& CodeGenOrdered)
void EmitOMPOuterLoop(
bool DynamicOrOrdered,
bool IsMonotonic,
const clang::OMPLoopDirective& S,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& LoopScope,
const clang::CodeGen::CodeGenFunction::
OMPLoopArguments& LoopArgs,
const clang::CodeGen::CodeGenFunction::
CodeGenLoopTy& CodeGenLoop,
const clang::CodeGen::CodeGenFunction::
CodeGenOrderedTy& CodeGenOrdered)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3714
Parameters
- bool DynamicOrOrdered
- bool IsMonotonic
- const clang::OMPLoopDirective& S
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& LoopScope
- const clang::CodeGen::CodeGenFunction:: OMPLoopArguments& LoopArgs
- const clang::CodeGen::CodeGenFunction:: CodeGenLoopTy& CodeGenLoop
- const clang::CodeGen::CodeGenFunction:: CodeGenOrderedTy& CodeGenOrdered
¶void EmitOMPParallelDirective(
const clang::OMPParallelDirective& S)
void EmitOMPParallelDirective(
const clang::OMPParallelDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3504
Parameters
- const clang::OMPParallelDirective& S
¶void EmitOMPParallelForDirective(
const clang::OMPParallelForDirective& S)
void EmitOMPParallelForDirective(
const clang::OMPParallelForDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3516
Parameters
- const clang::OMPParallelForDirective& S
¶void EmitOMPParallelForSimdDirective(
const clang::OMPParallelForSimdDirective& S)
void EmitOMPParallelForSimdDirective(
const clang::OMPParallelForSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3517
Parameters
- const clang::OMPParallelForSimdDirective& S
¶void EmitOMPParallelMasterDirective(
const clang::OMPParallelMasterDirective& S)
void EmitOMPParallelMasterDirective(
const clang::OMPParallelMasterDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3519
Parameters
- const clang::OMPParallelMasterDirective& S
¶void EmitOMPParallelMasterTaskLoopDirective(
const clang::
OMPParallelMasterTaskLoopDirective& S)
void EmitOMPParallelMasterTaskLoopDirective(
const clang::
OMPParallelMasterTaskLoopDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3548
Parameters
¶void EmitOMPParallelMasterTaskLoopSimdDirective(
const clang::
OMPParallelMasterTaskLoopSimdDirective& S)
void EmitOMPParallelMasterTaskLoopSimdDirective(
const clang::
OMPParallelMasterTaskLoopSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3550
Parameters
- const clang:: OMPParallelMasterTaskLoopSimdDirective& S
¶void EmitOMPParallelSectionsDirective(
const clang::OMPParallelSectionsDirective& S)
void EmitOMPParallelSectionsDirective(
const clang::OMPParallelSectionsDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3518
Parameters
- const clang::OMPParallelSectionsDirective& S
¶void EmitOMPPrivateClause(
const clang::OMPExecutableDirective& D,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope)
void EmitOMPPrivateClause(
const clang::OMPExecutableDirective& D,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3396
Parameters
- const clang::OMPExecutableDirective& D
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& PrivateScope
¶void EmitOMPPrivateLoopCounters(
const clang::OMPLoopDirective& S,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& LoopScope)
void EmitOMPPrivateLoopCounters(
const clang::OMPLoopDirective& S,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& LoopScope)
Description
Emit initial code for loop counters of loop-based directives.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3650
Parameters
- const clang::OMPLoopDirective& S
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& LoopScope
¶void EmitOMPReductionClauseFinal(
const clang::OMPExecutableDirective& D,
const clang::OpenMPDirectiveKind
ReductionKind)
void EmitOMPReductionClauseFinal(
const clang::OMPExecutableDirective& D,
const clang::OpenMPDirectiveKind
ReductionKind)
Description
Emit final update of reduction values to original variables at the end of the directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3463
Parameters
- const clang::OMPExecutableDirective& D
- Directive that has at least one 'reduction' directives.
- const clang::OpenMPDirectiveKind ReductionKind
- The kind of reduction to perform.
¶void EmitOMPReductionClauseInit(
const clang::OMPExecutableDirective& D,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope,
bool ForInscan = false)
void EmitOMPReductionClauseInit(
const clang::OMPExecutableDirective& D,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope,
bool ForInscan = false)
Description
Emit initial code for reduction variables. Creates reduction copies and initializes them with the values according to OpenMP standard.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3455
Parameters
- const clang::OMPExecutableDirective& D
- Directive (possibly) with the 'reduction' clause.
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& PrivateScope
- Private scope for capturing reduction variables for proper codegen in internal captured statement.
- bool ForInscan = false
¶void EmitOMPScanDirective(
const clang::OMPScanDirective& S)
void EmitOMPScanDirective(
const clang::OMPScanDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3527
Parameters
- const clang::OMPScanDirective& S
¶void EmitOMPSectionDirective(
const clang::OMPSectionDirective& S)
void EmitOMPSectionDirective(
const clang::OMPSectionDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3511
Parameters
- const clang::OMPSectionDirective& S
¶void EmitOMPSectionsDirective(
const clang::OMPSectionsDirective& S)
void EmitOMPSectionsDirective(
const clang::OMPSectionsDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3510
Parameters
- const clang::OMPSectionsDirective& S
¶clang::CodeGen::LValue EmitOMPSharedLValue(
const clang::Expr* E)
clang::CodeGen::LValue EmitOMPSharedLValue(
const clang::Expr* E)
Description
Emits the lvalue for the expression with possibly captured variable.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3674
Parameters
- const clang::Expr* E
¶void EmitOMPSimdDirective(
const clang::OMPSimdDirective& S)
void EmitOMPSimdDirective(
const clang::OMPSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3505
Parameters
- const clang::OMPSimdDirective& S
¶void EmitOMPSimdFinal(
const clang::OMPLoopDirective& D,
const llvm::function_ref<
llvm::Value*(CodeGenFunction&)> CondGen)
void EmitOMPSimdFinal(
const clang::OMPLoopDirective& D,
const llvm::function_ref<
llvm::Value*(CodeGenFunction&)> CondGen)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3669
Parameters
- const clang::OMPLoopDirective& D
- const llvm::function_ref<llvm::Value*( CodeGenFunction&)> CondGen
¶void EmitOMPSimdInit(
const clang::OMPLoopDirective& D)
void EmitOMPSimdInit(
const clang::OMPLoopDirective& D)
Description
Helpers for the OpenMP loop directives.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3668
Parameters
- const clang::OMPLoopDirective& D
¶void EmitOMPSingleDirective(
const clang::OMPSingleDirective& S)
void EmitOMPSingleDirective(
const clang::OMPSingleDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3512
Parameters
- const clang::OMPSingleDirective& S
¶void EmitOMPTargetDataDirective(
const clang::OMPTargetDataDirective& S)
void EmitOMPTargetDataDirective(
const clang::OMPTargetDataDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3531
Parameters
- const clang::OMPTargetDataDirective& S
¶static void EmitOMPTargetDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetDirective& S)
static void EmitOMPTargetDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetDirective& S)
Description
Emit device code for the target directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3581
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang::OMPTargetDirective& S
¶void EmitOMPTargetDirective(
const clang::OMPTargetDirective& S)
void EmitOMPTargetDirective(
const clang::OMPTargetDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3530
Parameters
- const clang::OMPTargetDirective& S
¶void EmitOMPTargetEnterDataDirective(
const clang::OMPTargetEnterDataDirective& S)
void EmitOMPTargetEnterDataDirective(
const clang::OMPTargetEnterDataDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3532
Parameters
- const clang::OMPTargetEnterDataDirective& S
¶void EmitOMPTargetExitDataDirective(
const clang::OMPTargetExitDataDirective& S)
void EmitOMPTargetExitDataDirective(
const clang::OMPTargetExitDataDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3533
Parameters
- const clang::OMPTargetExitDataDirective& S
¶static void EmitOMPTargetParallelDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetParallelDirective& S)
static void EmitOMPTargetParallelDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetParallelDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3585
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang::OMPTargetParallelDirective& S
¶void EmitOMPTargetParallelDirective(
const clang::OMPTargetParallelDirective& S)
void EmitOMPTargetParallelDirective(
const clang::OMPTargetParallelDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3535
Parameters
- const clang::OMPTargetParallelDirective& S
¶static void
EmitOMPTargetParallelForDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetParallelForDirective& S)
static void
EmitOMPTargetParallelForDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetParallelForDirective& S)
Description
Emit device code for the target parallel for directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3588
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang::OMPTargetParallelForDirective& S
¶void EmitOMPTargetParallelForDirective(
const clang::OMPTargetParallelForDirective& S)
void EmitOMPTargetParallelForDirective(
const clang::OMPTargetParallelForDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3537
Parameters
- const clang::OMPTargetParallelForDirective& S
¶static void
EmitOMPTargetParallelForSimdDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetParallelForSimdDirective& S)
static void
EmitOMPTargetParallelForSimdDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetParallelForSimdDirective& S)
Description
Emit device code for the target parallel for simd directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3592
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang::OMPTargetParallelForSimdDirective& S
¶void EmitOMPTargetParallelForSimdDirective(
const clang::
OMPTargetParallelForSimdDirective& S)
void EmitOMPTargetParallelForSimdDirective(
const clang::
OMPTargetParallelForSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3558
Parameters
¶static void EmitOMPTargetSimdDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetSimdDirective& S)
static void EmitOMPTargetSimdDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetSimdDirective& S)
Description
Emit device code for the target simd directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3608
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang::OMPTargetSimdDirective& S
¶void EmitOMPTargetSimdDirective(
const clang::OMPTargetSimdDirective& S)
void EmitOMPTargetSimdDirective(
const clang::OMPTargetSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3560
Parameters
- const clang::OMPTargetSimdDirective& S
¶void EmitOMPTargetTaskBasedDirective(
const clang::OMPExecutableDirective& S,
const clang::CodeGen::RegionCodeGenTy&
BodyGen,
clang::CodeGen::CodeGenFunction::
OMPTargetDataInfo& InputInfo)
void EmitOMPTargetTaskBasedDirective(
const clang::OMPExecutableDirective& S,
const clang::CodeGen::RegionCodeGenTy&
BodyGen,
clang::CodeGen::CodeGenFunction::
OMPTargetDataInfo& InputInfo)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3495
Parameters
- const clang::OMPExecutableDirective& S
- const clang::CodeGen::RegionCodeGenTy& BodyGen
- clang::CodeGen::CodeGenFunction:: OMPTargetDataInfo& InputInfo
¶static void EmitOMPTargetTeamsDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetTeamsDirective& S)
static void EmitOMPTargetTeamsDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::OMPTargetTeamsDirective& S)
Description
Emit device code for the target teams directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3597
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang::OMPTargetTeamsDirective& S
¶void EmitOMPTargetTeamsDirective(
const clang::OMPTargetTeamsDirective& S)
void EmitOMPTargetTeamsDirective(
const clang::OMPTargetTeamsDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3568
Parameters
- const clang::OMPTargetTeamsDirective& S
¶static void
EmitOMPTargetTeamsDistributeDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetTeamsDistributeDirective& S)
static void
EmitOMPTargetTeamsDistributeDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetTeamsDistributeDirective& S)
Description
Emit device code for the target teams distribute directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3600
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang::OMPTargetTeamsDistributeDirective& S
¶void EmitOMPTargetTeamsDistributeDirective(
const clang::
OMPTargetTeamsDistributeDirective& S)
void EmitOMPTargetTeamsDistributeDirective(
const clang::
OMPTargetTeamsDistributeDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3569
Parameters
¶static void
EmitOMPTargetTeamsDistributeParallelForDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetTeamsDistributeParallelForDirective&
S)
static void
EmitOMPTargetTeamsDistributeParallelForDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetTeamsDistributeParallelForDirective&
S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3617
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang:: OMPTargetTeamsDistributeParallelForDirective& S
¶void EmitOMPTargetTeamsDistributeParallelForDirective(
const clang::
OMPTargetTeamsDistributeParallelForDirective&
S)
void EmitOMPTargetTeamsDistributeParallelForDirective(
const clang::
OMPTargetTeamsDistributeParallelForDirective&
S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3571
Parameters
- const clang:: OMPTargetTeamsDistributeParallelForDirective& S
¶static void
EmitOMPTargetTeamsDistributeParallelForSimdDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetTeamsDistributeParallelForSimdDirective&
S)
static void
EmitOMPTargetTeamsDistributeParallelForSimdDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetTeamsDistributeParallelForSimdDirective&
S)
Description
Emit device code for the target teams distribute parallel for simd directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3613
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang:: OMPTargetTeamsDistributeParallelForSimdDirective& S
¶void EmitOMPTargetTeamsDistributeParallelForSimdDirective(
const clang::
OMPTargetTeamsDistributeParallelForSimdDirective&
S)
void EmitOMPTargetTeamsDistributeParallelForSimdDirective(
const clang::
OMPTargetTeamsDistributeParallelForSimdDirective&
S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3573
Parameters
- const clang:: OMPTargetTeamsDistributeParallelForSimdDirective& S
¶static void
EmitOMPTargetTeamsDistributeSimdDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetTeamsDistributeSimdDirective& S)
static void
EmitOMPTargetTeamsDistributeSimdDeviceFunction(
clang::CodeGen::CodeGenModule& CGM,
llvm::StringRef ParentName,
const clang::
OMPTargetTeamsDistributeSimdDirective& S)
Description
Emit device code for the target teams distribute simd directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3604
Parameters
- clang::CodeGen::CodeGenModule& CGM
- llvm::StringRef ParentName
- const clang:: OMPTargetTeamsDistributeSimdDirective& S
¶void EmitOMPTargetTeamsDistributeSimdDirective(
const clang::
OMPTargetTeamsDistributeSimdDirective& S)
void EmitOMPTargetTeamsDistributeSimdDirective(
const clang::
OMPTargetTeamsDistributeSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3575
Parameters
- const clang:: OMPTargetTeamsDistributeSimdDirective& S
¶void EmitOMPTargetUpdateDirective(
const clang::OMPTargetUpdateDirective& S)
void EmitOMPTargetUpdateDirective(
const clang::OMPTargetUpdateDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3534
Parameters
- const clang::OMPTargetUpdateDirective& S
¶void EmitOMPTaskBasedDirective(
const clang::OMPExecutableDirective& S,
const clang::OpenMPDirectiveKind
CapturedRegion,
const clang::CodeGen::RegionCodeGenTy&
BodyGen,
const clang::CodeGen::CodeGenFunction::
TaskGenTy& TaskGen,
clang::CodeGen::OMPTaskDataTy& Data)
void EmitOMPTaskBasedDirective(
const clang::OMPExecutableDirective& S,
const clang::OpenMPDirectiveKind
CapturedRegion,
const clang::CodeGen::RegionCodeGenTy&
BodyGen,
const clang::CodeGen::CodeGenFunction::
TaskGenTy& TaskGen,
clang::CodeGen::OMPTaskDataTy& Data)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3477
Parameters
- const clang::OMPExecutableDirective& S
- const clang::OpenMPDirectiveKind CapturedRegion
- const clang::CodeGen::RegionCodeGenTy& BodyGen
- const clang::CodeGen::CodeGenFunction::TaskGenTy& TaskGen
- clang::CodeGen::OMPTaskDataTy& Data
¶void EmitOMPTaskDirective(
const clang::OMPTaskDirective& S)
void EmitOMPTaskDirective(
const clang::OMPTaskDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3520
Parameters
- const clang::OMPTaskDirective& S
¶void EmitOMPTaskLoopBasedDirective(
const clang::OMPLoopDirective& S)
void EmitOMPTaskLoopBasedDirective(
const clang::OMPLoopDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3542
Parameters
- const clang::OMPLoopDirective& S
¶void EmitOMPTaskLoopDirective(
const clang::OMPTaskLoopDirective& S)
void EmitOMPTaskLoopDirective(
const clang::OMPTaskLoopDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3543
Parameters
- const clang::OMPTaskLoopDirective& S
¶void EmitOMPTaskLoopSimdDirective(
const clang::OMPTaskLoopSimdDirective& S)
void EmitOMPTaskLoopSimdDirective(
const clang::OMPTaskLoopSimdDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3544
Parameters
- const clang::OMPTaskLoopSimdDirective& S
¶void EmitOMPTaskgroupDirective(
const clang::OMPTaskgroupDirective& S)
void EmitOMPTaskgroupDirective(
const clang::OMPTaskgroupDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3524
Parameters
- const clang::OMPTaskgroupDirective& S
¶void EmitOMPTaskwaitDirective(
const clang::OMPTaskwaitDirective& S)
void EmitOMPTaskwaitDirective(
const clang::OMPTaskwaitDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3523
Parameters
- const clang::OMPTaskwaitDirective& S
¶void EmitOMPTaskyieldDirective(
const clang::OMPTaskyieldDirective& S)
void EmitOMPTaskyieldDirective(
const clang::OMPTaskyieldDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3521
Parameters
- const clang::OMPTaskyieldDirective& S
¶void EmitOMPTeamsDirective(
const clang::OMPTeamsDirective& S)
void EmitOMPTeamsDirective(
const clang::OMPTeamsDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3538
Parameters
- const clang::OMPTeamsDirective& S
¶void EmitOMPTeamsDistributeDirective(
const clang::OMPTeamsDistributeDirective& S)
void EmitOMPTeamsDistributeDirective(
const clang::OMPTeamsDistributeDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3561
Parameters
- const clang::OMPTeamsDistributeDirective& S
¶void EmitOMPTeamsDistributeParallelForDirective(
const clang::
OMPTeamsDistributeParallelForDirective& S)
void EmitOMPTeamsDistributeParallelForDirective(
const clang::
OMPTeamsDistributeParallelForDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3566
Parameters
- const clang:: OMPTeamsDistributeParallelForDirective& S
¶void EmitOMPTeamsDistributeParallelForSimdDirective(
const clang::
OMPTeamsDistributeParallelForSimdDirective&
S)
void EmitOMPTeamsDistributeParallelForSimdDirective(
const clang::
OMPTeamsDistributeParallelForSimdDirective&
S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3564
Parameters
- const clang:: OMPTeamsDistributeParallelForSimdDirective& S
¶void EmitOMPTeamsDistributeSimdDirective(
const clang::OMPTeamsDistributeSimdDirective&
S)
void EmitOMPTeamsDistributeSimdDirective(
const clang::OMPTeamsDistributeSimdDirective&
S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3563
Parameters
¶void EmitOMPTileDirective(
const clang::OMPTileDirective& S)
void EmitOMPTileDirective(
const clang::OMPTileDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3506
Parameters
- const clang::OMPTileDirective& S
¶void EmitOMPUnrollDirective(
const clang::OMPUnrollDirective& S)
void EmitOMPUnrollDirective(
const clang::OMPUnrollDirective& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3507
Parameters
- const clang::OMPUnrollDirective& S
¶void EmitOMPUseDeviceAddrClause(
const clang::OMPUseDeviceAddrClause& C,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope,
const llvm::DenseMap<const ValueDecl*,
Address>&
CaptureDeviceAddrMap)
void EmitOMPUseDeviceAddrClause(
const clang::OMPUseDeviceAddrClause& C,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope,
const llvm::DenseMap<const ValueDecl*,
Address>&
CaptureDeviceAddrMap)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3401
Parameters
- const clang::OMPUseDeviceAddrClause& C
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& PrivateScope
- const llvm::DenseMap<const ValueDecl*, Address>& CaptureDeviceAddrMap
¶void EmitOMPUseDevicePtrClause(
const clang::OMPUseDevicePtrClause& C,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope,
const llvm::DenseMap<const ValueDecl*,
Address>&
CaptureDeviceAddrMap)
void EmitOMPUseDevicePtrClause(
const clang::OMPUseDevicePtrClause& C,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& PrivateScope,
const llvm::DenseMap<const ValueDecl*,
Address>&
CaptureDeviceAddrMap)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3398
Parameters
- const clang::OMPUseDevicePtrClause& C
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& PrivateScope
- const llvm::DenseMap<const ValueDecl*, Address>& CaptureDeviceAddrMap
¶bool EmitOMPWorksharingLoop(
const clang::OMPLoopDirective& S,
clang::Expr* EUB,
const clang::CodeGen::CodeGenFunction::
CodeGenLoopBoundsTy& CodeGenLoopBounds,
const clang::CodeGen::CodeGenFunction::
CodeGenDispatchBoundsTy& CGDispatchBounds)
bool EmitOMPWorksharingLoop(
const clang::OMPLoopDirective& S,
clang::Expr* EUB,
const clang::CodeGen::CodeGenFunction::
CodeGenLoopBoundsTy& CodeGenLoopBounds,
const clang::CodeGen::CodeGenFunction::
CodeGenDispatchBoundsTy& CGDispatchBounds)
Description
Emit code for the worksharing loop-based directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3659
Parameters
- const clang::OMPLoopDirective& S
- clang::Expr* EUB
- const clang::CodeGen::CodeGenFunction:: CodeGenLoopBoundsTy& CodeGenLoopBounds
- const clang::CodeGen::CodeGenFunction:: CodeGenDispatchBoundsTy& CGDispatchBounds
Returns
true, if this construct has any lastprivate clause, false - otherwise.
¶llvm::Value* EmitObjCAlloc(llvm::Value* value,
llvm::Type* returnType)
llvm::Value* EmitObjCAlloc(llvm::Value* value,
llvm::Type* returnType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4321
Parameters
- llvm::Value* value
- llvm::Type* returnType
¶llvm::Value* EmitObjCAllocInit(
llvm::Value* value,
llvm::Type* resultType)
llvm::Value* EmitObjCAllocInit(
llvm::Value* value,
llvm::Type* resultType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4325
Parameters
- llvm::Value* value
- llvm::Type* resultType
¶llvm::Value* EmitObjCAllocWithZone(
llvm::Value* value,
llvm::Type* returnType)
llvm::Value* EmitObjCAllocWithZone(
llvm::Value* value,
llvm::Type* returnType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4323
Parameters
- llvm::Value* value
- llvm::Type* returnType
¶llvm::Value* EmitObjCArrayLiteral(
const clang::ObjCArrayLiteral* E)
llvm::Value* EmitObjCArrayLiteral(
const clang::ObjCArrayLiteral* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4267
Parameters
- const clang::ObjCArrayLiteral* E
¶void EmitObjCAtSynchronizedStmt(
const clang::ObjCAtSynchronizedStmt& S)
void EmitObjCAtSynchronizedStmt(
const clang::ObjCAtSynchronizedStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3260
Parameters
- const clang::ObjCAtSynchronizedStmt& S
¶void EmitObjCAtThrowStmt(
const clang::ObjCAtThrowStmt& S)
void EmitObjCAtThrowStmt(
const clang::ObjCAtThrowStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3259
Parameters
- const clang::ObjCAtThrowStmt& S
¶void EmitObjCAtTryStmt(
const clang::ObjCAtTryStmt& S)
void EmitObjCAtTryStmt(
const clang::ObjCAtTryStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3258
Parameters
- const clang::ObjCAtTryStmt& S
¶llvm::Value* EmitObjCAutorelease(
llvm::Value* value,
llvm::Type* returnType)
llvm::Value* EmitObjCAutorelease(
llvm::Value* value,
llvm::Type* returnType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4309
Parameters
- llvm::Value* value
- llvm::Type* returnType
¶void EmitObjCAutoreleasePoolCleanup(
llvm::Value* Ptr)
void EmitObjCAutoreleasePoolCleanup(
llvm::Value* Ptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4351
Parameters
- llvm::Value* Ptr
¶void EmitObjCAutoreleasePoolPop(llvm::Value* Ptr)
void EmitObjCAutoreleasePoolPop(llvm::Value* Ptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4348
Parameters
- llvm::Value* Ptr
¶llvm::Value* EmitObjCAutoreleasePoolPush()
llvm::Value* EmitObjCAutoreleasePoolPush()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4349
¶void EmitObjCAutoreleasePoolStmt(
const clang::ObjCAutoreleasePoolStmt& S)
void EmitObjCAutoreleasePoolStmt(
const clang::ObjCAutoreleasePoolStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3261
Parameters
- const clang::ObjCAutoreleasePoolStmt& S
¶llvm::Value* EmitObjCBoxedExpr(
const clang::ObjCBoxedExpr* E)
llvm::Value* EmitObjCBoxedExpr(
const clang::ObjCBoxedExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4266
Parameters
- const clang::ObjCBoxedExpr* E
¶llvm::Value* EmitObjCCollectionLiteral(
const clang::Expr* E,
const clang::ObjCMethodDecl*
MethodWithObjects)
llvm::Value* EmitObjCCollectionLiteral(
const clang::Expr* E,
const clang::ObjCMethodDecl*
MethodWithObjects)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4269
Parameters
- const clang::Expr* E
- const clang::ObjCMethodDecl* MethodWithObjects
¶llvm::Value* EmitObjCConsumeObject(
clang::QualType T,
llvm::Value* Ptr)
llvm::Value* EmitObjCConsumeObject(
clang::QualType T,
llvm::Value* Ptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4328
Parameters
- clang::QualType T
- llvm::Value* Ptr
¶llvm::Value* EmitObjCDictionaryLiteral(
const clang::ObjCDictionaryLiteral* E)
llvm::Value* EmitObjCDictionaryLiteral(
const clang::ObjCDictionaryLiteral* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4268
Parameters
- const clang::ObjCDictionaryLiteral* E
¶clang::CodeGen::LValue EmitObjCEncodeExprLValue(
const clang::ObjCEncodeExpr* E)
clang::CodeGen::LValue EmitObjCEncodeExprLValue(
const clang::ObjCEncodeExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3908
Parameters
- const clang::ObjCEncodeExpr* E
¶llvm::Value* EmitObjCExtendObjectLifetime(
clang::QualType T,
llvm::Value* Ptr)
llvm::Value* EmitObjCExtendObjectLifetime(
clang::QualType T,
llvm::Value* Ptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4329
Parameters
- clang::QualType T
- llvm::Value* Ptr
¶void EmitObjCForCollectionStmt(
const clang::ObjCForCollectionStmt& S)
void EmitObjCForCollectionStmt(
const clang::ObjCForCollectionStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3257
Parameters
- const clang::ObjCForCollectionStmt& S
¶clang::CodeGen::LValue EmitObjCIsaExpr(
const clang::ObjCIsaExpr* E)
clang::CodeGen::LValue EmitObjCIsaExpr(
const clang::ObjCIsaExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3918
Parameters
- const clang::ObjCIsaExpr* E
¶clang::CodeGen::LValue EmitObjCIvarRefLValue(
const clang::ObjCIvarRefExpr* E)
clang::CodeGen::LValue EmitObjCIvarRefLValue(
const clang::ObjCIvarRefExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3994
Parameters
- const clang::ObjCIvarRefExpr* E
¶void EmitObjCMRRAutoreleasePoolPop(
llvm::Value* Ptr)
void EmitObjCMRRAutoreleasePoolPop(
llvm::Value* Ptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4352
Parameters
- llvm::Value* Ptr
¶llvm::Value* EmitObjCMRRAutoreleasePoolPush()
llvm::Value* EmitObjCMRRAutoreleasePoolPush()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4350
¶clang::CodeGen::RValue EmitObjCMessageExpr(
const clang::ObjCMessageExpr* E,
clang::CodeGen::ReturnValueSlot Return =
clang::CodeGen::ReturnValueSlot())
clang::CodeGen::RValue EmitObjCMessageExpr(
const clang::ObjCMessageExpr* E,
clang::CodeGen::ReturnValueSlot Return =
clang::CodeGen::ReturnValueSlot())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4272
Parameters
- const clang::ObjCMessageExpr* E
- clang::CodeGen::ReturnValueSlot Return = clang::CodeGen::ReturnValueSlot()
¶clang::CodeGen::LValue EmitObjCMessageExprLValue(
const clang::ObjCMessageExpr* E)
clang::CodeGen::LValue EmitObjCMessageExprLValue(
const clang::ObjCMessageExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3993
Parameters
- const clang::ObjCMessageExpr* E
¶llvm::Value* EmitObjCProtocolExpr(
const clang::ObjCProtocolExpr* E)
llvm::Value* EmitObjCProtocolExpr(
const clang::ObjCProtocolExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4264
Parameters
- const clang::ObjCProtocolExpr* E
¶void EmitObjCRelease(
llvm::Value* value,
clang::CodeGen::ARCPreciseLifetime_t precise)
void EmitObjCRelease(
llvm::Value* value,
clang::CodeGen::ARCPreciseLifetime_t precise)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4312
Parameters
- llvm::Value* value
- clang::CodeGen::ARCPreciseLifetime_t precise
¶llvm::Value* EmitObjCRetainNonBlock(
llvm::Value* value,
llvm::Type* returnType)
llvm::Value* EmitObjCRetainNonBlock(
llvm::Value* value,
llvm::Type* returnType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4310
Parameters
- llvm::Value* value
- llvm::Type* returnType
¶llvm::Value* EmitObjCSelectorExpr(
const clang::ObjCSelectorExpr* E)
llvm::Value* EmitObjCSelectorExpr(
const clang::ObjCSelectorExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4271
Parameters
- const clang::ObjCSelectorExpr* E
¶clang::CodeGen::LValue EmitObjCSelectorLValue(
const clang::ObjCSelectorExpr* E)
clang::CodeGen::LValue EmitObjCSelectorLValue(
const clang::ObjCSelectorExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3997
Parameters
- const clang::ObjCSelectorExpr* E
¶llvm::Value* EmitObjCStringLiteral(
const clang::ObjCStringLiteral* E)
llvm::Value* EmitObjCStringLiteral(
const clang::ObjCStringLiteral* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4265
Parameters
- const clang::ObjCStringLiteral* E
¶llvm::Value* EmitObjCThrowOperand(
const clang::Expr* expr)
llvm::Value* EmitObjCThrowOperand(
const clang::Expr* expr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4327
Parameters
- const clang::Expr* expr
¶clang::CodeGen::LValue EmitOpaqueValueLValue(
const clang::OpaqueValueExpr* e)
clang::CodeGen::LValue EmitOpaqueValueLValue(
const clang::OpaqueValueExpr* e)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3925
Parameters
- const clang::OpaqueValueExpr* e
¶clang::CodeGen::RValue
EmitOpenMPDevicePrintfCallExpr(
const clang::CallExpr* E)
clang::CodeGen::RValue
EmitOpenMPDevicePrintfCallExpr(
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4122
Parameters
- const clang::CallExpr* E
¶llvm::Value* EmitPPCBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitPPCBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4246
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶void EmitParmDecl(
const clang::VarDecl& D,
clang::CodeGen::CodeGenFunction::ParamValue
Arg,
unsigned int ArgNo)
void EmitParmDecl(
const clang::VarDecl& D,
clang::CodeGen::CodeGenFunction::ParamValue
Arg,
unsigned int ArgNo)
Description
EmitParmDecl - Emit a ParmVarDecl or an ImplicitParamDecl.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3170
Parameters
- const clang::VarDecl& D
- clang::CodeGen::CodeGenFunction::ParamValue Arg
- unsigned int ArgNo
¶clang::CodeGen::LValue
EmitPointerToDataMemberBinaryExpr(
const clang::BinaryOperator* E)
clang::CodeGen::LValue
EmitPointerToDataMemberBinaryExpr(
const clang::BinaryOperator* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3996
Parameters
- const clang::BinaryOperator* E
¶clang::CodeGen::Address EmitPointerWithAlignment(
const clang::Expr* Addr,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
clang::CodeGen::Address EmitPointerWithAlignment(
const clang::Expr* Addr,
clang::CodeGen::LValueBaseInfo* BaseInfo =
nullptr,
clang::CodeGen::TBAAAccessInfo* TBAAInfo =
nullptr)
Description
EmitPointerWithAlignment - Given an expression with a pointer type, emit the value and compute our best estimate of the alignment of the pointee. One reasonable way to use this information is when there's a language guarantee that the pointer must be aligned to some stricter value, and we're simply trying to ensure that sufficiently obvious uses of under- aligned objects don't get miscompiled; for example, a placement new into the address of a local variable. In such a case, it's quite reasonable to just ignore the returned alignment when it isn't from an explicit source.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4766
Parameters
- const clang::Expr* Addr
- clang::CodeGen::LValueBaseInfo* BaseInfo = nullptr
- - If non-null, this will be initialized with information about the source of the alignment and the may-alias attribute. Note that this function will conservatively fall back on the type when it doesn't recognize the expression and may-alias will be set to false.
- clang::CodeGen::TBAAAccessInfo* TBAAInfo = nullptr
¶clang::CodeGen::LValue EmitPredefinedLValue(
const clang::PredefinedExpr* E)
clang::CodeGen::LValue EmitPredefinedLValue(
const clang::PredefinedExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3909
Parameters
- const clang::PredefinedExpr* E
¶clang::CodeGen::LValue EmitPseudoObjectLValue(
const clang::PseudoObjectExpr* e)
clang::CodeGen::LValue EmitPseudoObjectLValue(
const clang::PseudoObjectExpr* e)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3971
Parameters
- const clang::PseudoObjectExpr* e
¶clang::CodeGen::RValue EmitPseudoObjectRValue(
const clang::PseudoObjectExpr* e,
clang::CodeGen::AggValueSlot slot =
AggValueSlot::ignored())
clang::CodeGen::RValue EmitPseudoObjectRValue(
const clang::PseudoObjectExpr* e,
clang::CodeGen::AggValueSlot slot =
AggValueSlot::ignored())
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3969
Parameters
- const clang::PseudoObjectExpr* e
- clang::CodeGen::AggValueSlot slot = AggValueSlot::ignored()
¶llvm::Value* EmitRISCVBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
llvm::Value* EmitRISCVBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4253
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
¶clang::CodeGen::RValue EmitRValueForField(
clang::CodeGen::LValue LV,
const clang::FieldDecl* FD,
clang::SourceLocation Loc)
clang::CodeGen::RValue EmitRValueForField(
clang::CodeGen::LValue LV,
const clang::FieldDecl* FD,
clang::SourceLocation Loc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3929
Parameters
- clang::CodeGen::LValue LV
- const clang::FieldDecl* FD
- clang::SourceLocation Loc
¶clang::CodeGen::RValue EmitReferenceBindingToExpr(
const clang::Expr* E)
clang::CodeGen::RValue EmitReferenceBindingToExpr(
const clang::Expr* E)
Description
Emits a reference binding to the passed in expression.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4355
Parameters
- const clang::Expr* E
¶llvm::DebugLoc EmitReturnBlock()
llvm::DebugLoc EmitReturnBlock()
Description
Emit the unified return block, trying to avoid its emission when possible.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2234
Returns
The debug location of the user written return statement if the return block is is avoided.
¶void EmitReturnOfRValue(clang::CodeGen::RValue RV,
clang::QualType Ty)
void EmitReturnOfRValue(clang::CodeGen::RValue RV,
clang::QualType Ty)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4667
Parameters
¶void EmitReturnStmt(const clang::ReturnStmt& S)
void EmitReturnStmt(const clang::ReturnStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3247
Parameters
- const clang::ReturnStmt& S
¶void EmitReturnValueCheck(llvm::Value* RV)
void EmitReturnValueCheck(llvm::Value* RV)
Description
Emit a test that checks if the return value \p RV is nonnull.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2382
Parameters
- llvm::Value* RV
¶llvm::CallInst* EmitRuntimeCall(
llvm::FunctionCallee callee,
const llvm::Twine& name = "")
llvm::CallInst* EmitRuntimeCall(
llvm::FunctionCallee callee,
const llvm::Twine& name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4028
Parameters
- llvm::FunctionCallee callee
- const llvm::Twine& name = ""
¶llvm::CallInst* EmitRuntimeCall(
llvm::FunctionCallee callee,
ArrayRef<llvm::Value*> args,
const llvm::Twine& name = "")
llvm::CallInst* EmitRuntimeCall(
llvm::FunctionCallee callee,
ArrayRef<llvm::Value*> args,
const llvm::Twine& name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4030
Parameters
- llvm::FunctionCallee callee
- ArrayRef<llvm::Value*> args
- const llvm::Twine& name = ""
¶llvm::CallBase* EmitRuntimeCallOrInvoke(
llvm::FunctionCallee callee,
const llvm::Twine& name = "")
llvm::CallBase* EmitRuntimeCallOrInvoke(
llvm::FunctionCallee callee,
const llvm::Twine& name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4048
Parameters
- llvm::FunctionCallee callee
- const llvm::Twine& name = ""
¶llvm::CallBase* EmitRuntimeCallOrInvoke(
llvm::FunctionCallee callee,
ArrayRef<llvm::Value*> args,
const llvm::Twine& name = "")
llvm::CallBase* EmitRuntimeCallOrInvoke(
llvm::FunctionCallee callee,
ArrayRef<llvm::Value*> args,
const llvm::Twine& name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4045
Parameters
- llvm::FunctionCallee callee
- ArrayRef<llvm::Value*> args
- const llvm::Twine& name = ""
¶llvm::Value* EmitSEHAbnormalTermination()
llvm::Value* EmitSEHAbnormalTermination()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3302
¶llvm::Value* EmitSEHExceptionCode()
llvm::Value* EmitSEHExceptionCode()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3300
¶void EmitSEHExceptionCodeSave(
clang::CodeGen::CodeGenFunction& ParentCGF,
llvm::Value* ParentFP,
llvm::Value* EntryEBP)
void EmitSEHExceptionCodeSave(
clang::CodeGen::CodeGenFunction& ParentCGF,
llvm::Value* ParentFP,
llvm::Value* EntryEBP)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3297
Parameters
- clang::CodeGen::CodeGenFunction& ParentCGF
- llvm::Value* ParentFP
- llvm::Value* EntryEBP
¶llvm::Value* EmitSEHExceptionInfo()
llvm::Value* EmitSEHExceptionInfo()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3301
¶void EmitSEHLeaveStmt(
const clang::SEHLeaveStmt& S)
void EmitSEHLeaveStmt(
const clang::SEHLeaveStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3280
Parameters
- const clang::SEHLeaveStmt& S
¶void EmitSEHTryStmt(const clang::SEHTryStmt& S)
void EmitSEHTryStmt(const clang::SEHTryStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3279
Parameters
- const clang::SEHTryStmt& S
¶llvm::Value* EmitSVEAllTruePred(
const clang::SVETypeFlags& TypeFlags)
llvm::Value* EmitSVEAllTruePred(
const clang::SVETypeFlags& TypeFlags)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4202
Parameters
- const clang::SVETypeFlags& TypeFlags
¶llvm::Value* EmitSVEDupX(llvm::Value* Scalar,
llvm::Type* Ty)
llvm::Value* EmitSVEDupX(llvm::Value* Scalar,
llvm::Type* Ty)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4204
Parameters
- llvm::Value* Scalar
- llvm::Type* Ty
¶llvm::Value* EmitSVEDupX(llvm::Value* Scalar)
llvm::Value* EmitSVEDupX(llvm::Value* Scalar)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4203
Parameters
- llvm::Value* Scalar
¶llvm::Value* EmitSVEGatherLoad(
const clang::SVETypeFlags& TypeFlags,
llvm::SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
llvm::Value* EmitSVEGatherLoad(
const clang::SVETypeFlags& TypeFlags,
llvm::SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4214
Parameters
- const clang::SVETypeFlags& TypeFlags
- llvm::SmallVectorImpl<llvm::Value*>& Ops
- unsigned int IntID
¶llvm::Value* EmitSVEGatherPrefetch(
const clang::SVETypeFlags& TypeFlags,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
llvm::Value* EmitSVEGatherPrefetch(
const clang::SVETypeFlags& TypeFlags,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4229
Parameters
- const clang::SVETypeFlags& TypeFlags
- SmallVectorImpl<llvm::Value*>& Ops
- unsigned int IntID
¶llvm::Value* EmitSVEMaskedLoad(
const clang::CallExpr*,
llvm::Type* ReturnTy,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int BuiltinID,
bool IsZExtReturn)
llvm::Value* EmitSVEMaskedLoad(
const clang::CallExpr*,
llvm::Type* ReturnTy,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int BuiltinID,
bool IsZExtReturn)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4220
Parameters
- const clang::CallExpr*
- llvm::Type* ReturnTy
- SmallVectorImpl<llvm::Value*>& Ops
- unsigned int BuiltinID
- bool IsZExtReturn
¶llvm::Value* EmitSVEMaskedStore(
const clang::CallExpr*,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int BuiltinID)
llvm::Value* EmitSVEMaskedStore(
const clang::CallExpr*,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int BuiltinID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4223
Parameters
- const clang::CallExpr*
- SmallVectorImpl<llvm::Value*>& Ops
- unsigned int BuiltinID
¶llvm::Value* EmitSVEMovl(
const clang::SVETypeFlags& TypeFlags,
llvm::ArrayRef<llvm::Value*> Ops,
unsigned int BuiltinID)
llvm::Value* EmitSVEMovl(
const clang::SVETypeFlags& TypeFlags,
llvm::ArrayRef<llvm::Value*> Ops,
unsigned int BuiltinID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4209
Parameters
- const clang::SVETypeFlags& TypeFlags
- llvm::ArrayRef<llvm::Value*> Ops
- unsigned int BuiltinID
¶llvm::Value* EmitSVEPMull(
const clang::SVETypeFlags& TypeFlags,
llvm::SmallVectorImpl<llvm::Value*>& Ops,
unsigned int BuiltinID)
llvm::Value* EmitSVEPMull(
const clang::SVETypeFlags& TypeFlags,
llvm::SmallVectorImpl<llvm::Value*>& Ops,
unsigned int BuiltinID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4206
Parameters
- const clang::SVETypeFlags& TypeFlags
- llvm::SmallVectorImpl<llvm::Value*>& Ops
- unsigned int BuiltinID
¶llvm::Value* EmitSVEPredicateCast(
llvm::Value* Pred,
llvm::ScalableVectorType* VTy)
llvm::Value* EmitSVEPredicateCast(
llvm::Value* Pred,
llvm::ScalableVectorType* VTy)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4212
Parameters
- llvm::Value* Pred
- llvm::ScalableVectorType* VTy
¶llvm::Value* EmitSVEPrefetchLoad(
const clang::SVETypeFlags& TypeFlags,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int BuiltinID)
llvm::Value* EmitSVEPrefetchLoad(
const clang::SVETypeFlags& TypeFlags,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int BuiltinID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4226
Parameters
- const clang::SVETypeFlags& TypeFlags
- SmallVectorImpl<llvm::Value*>& Ops
- unsigned int BuiltinID
¶llvm::Value* EmitSVEReinterpret(llvm::Value* Val,
llvm::Type* Ty)
llvm::Value* EmitSVEReinterpret(llvm::Value* Val,
llvm::Type* Ty)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4205
Parameters
- llvm::Value* Val
- llvm::Type* Ty
¶llvm::Value* EmitSVEScatterStore(
const clang::SVETypeFlags& TypeFlags,
llvm::SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
llvm::Value* EmitSVEScatterStore(
const clang::SVETypeFlags& TypeFlags,
llvm::SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4217
Parameters
- const clang::SVETypeFlags& TypeFlags
- llvm::SmallVectorImpl<llvm::Value*>& Ops
- unsigned int IntID
¶llvm::Value* EmitSVEStructLoad(
const clang::SVETypeFlags& TypeFlags,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
llvm::Value* EmitSVEStructLoad(
const clang::SVETypeFlags& TypeFlags,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4232
Parameters
- const clang::SVETypeFlags& TypeFlags
- SmallVectorImpl<llvm::Value*>& Ops
- unsigned int IntID
¶llvm::Value* EmitSVEStructStore(
const clang::SVETypeFlags& TypeFlags,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
llvm::Value* EmitSVEStructStore(
const clang::SVETypeFlags& TypeFlags,
SmallVectorImpl<llvm::Value*>& Ops,
unsigned int IntID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4235
Parameters
- const clang::SVETypeFlags& TypeFlags
- SmallVectorImpl<llvm::Value*>& Ops
- unsigned int IntID
¶void EmitSanitizerStatReport(
llvm::SanitizerStatKind SSK)
void EmitSanitizerStatReport(
llvm::SanitizerStatKind SSK)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4775
Parameters
- llvm::SanitizerStatKind SSK
¶clang::CodeGen::LValue
EmitScalarCompoundAssignWithComplex(
const clang::CompoundAssignOperator* E,
llvm::Value*& Result)
clang::CodeGen::LValue
EmitScalarCompoundAssignWithComplex(
const clang::CompoundAssignOperator* E,
llvm::Value*& Result)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3896
Parameters
- const clang::CompoundAssignOperator* E
- llvm::Value*& Result
¶llvm::Value* EmitScalarConversion(
llvm::Value* Src,
clang::QualType SrcTy,
clang::QualType DstTy,
clang::SourceLocation Loc)
llvm::Value* EmitScalarConversion(
llvm::Value* Src,
clang::QualType SrcTy,
clang::QualType DstTy,
clang::SourceLocation Loc)
Description
Emit a conversion from the specified type to the specified destination type, both of which are LLVM scalar types.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4369
Parameters
- llvm::Value* Src
- clang::QualType SrcTy
- clang::QualType DstTy
- clang::SourceLocation Loc
¶llvm::Value* EmitScalarExpr(
const clang::Expr* E,
bool IgnoreResultAssign = false)
llvm::Value* EmitScalarExpr(
const clang::Expr* E,
bool IgnoreResultAssign = false)
Description
EmitScalarExpr - Emit the computation of the specified expression of LLVM scalar type, returning the result.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4365
Parameters
- const clang::Expr* E
- bool IgnoreResultAssign = false
¶void EmitScalarInit(const clang::Expr* init,
const clang::ValueDecl* D,
clang::CodeGen::LValue lvalue,
bool capturedByInit)
void EmitScalarInit(const clang::Expr* init,
const clang::ValueDecl* D,
clang::CodeGen::LValue lvalue,
bool capturedByInit)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3036
Parameters
- const clang::Expr* init
- const clang::ValueDecl* D
- clang::CodeGen::LValue lvalue
- bool capturedByInit
¶llvm::Value* EmitScalarPrePostIncDec(
const clang::UnaryOperator* E,
clang::CodeGen::LValue LV,
bool isInc,
bool isPre)
llvm::Value* EmitScalarPrePostIncDec(
const clang::UnaryOperator* E,
clang::CodeGen::LValue LV,
bool isInc,
bool isPre)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3010
Parameters
- const clang::UnaryOperator* E
- clang::CodeGen::LValue LV
- bool isInc
- bool isPre
¶bool EmitScalarRangeCheck(
llvm::Value* Value,
clang::QualType Ty,
clang::SourceLocation Loc)
bool EmitScalarRangeCheck(
llvm::Value* Value,
clang::QualType Ty,
clang::SourceLocation Loc)
Description
Check if the scalar \p Value is within the valid range for the given type \p Ty. Returns true if a check is needed (even if the range is unknown).
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3821
Parameters
- llvm::Value* Value
- clang::QualType Ty
- clang::SourceLocation Loc
¶void EmitSections(
const clang::OMPExecutableDirective& S)
void EmitSections(
const clang::OMPExecutableDirective& S)
Description
Emit code for sections directive.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3730
Parameters
- const clang::OMPExecutableDirective& S
¶void EmitSehCppScopeBegin()
void EmitSehCppScopeBegin()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2925
¶void EmitSehCppScopeEnd()
void EmitSehCppScopeEnd()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2926
¶void EmitSehTryScopeBegin()
void EmitSehTryScopeBegin()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2927
¶void EmitSehTryScopeEnd()
void EmitSehTryScopeEnd()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2928
¶clang::CodeGen::RValue EmitSimpleCallExpr(
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
clang::CodeGen::RValue EmitSimpleCallExpr(
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4022
Parameters
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
¶void EmitSimpleOMPExecutableDirective(
const clang::OMPExecutableDirective& D)
void EmitSimpleOMPExecutableDirective(
const clang::OMPExecutableDirective& D)
Description
Emit simple code for OpenMP directives in Simd-only mode.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3305
Parameters
- const clang::OMPExecutableDirective& D
¶bool EmitSimpleStmt(
const clang::Stmt* S,
ArrayRef<const clang::Attr*> Attrs)
bool EmitSimpleStmt(
const clang::Stmt* S,
ArrayRef<const clang::Attr*> Attrs)
Description
EmitSimpleStmt - Try to emit a "simple" statement which does not necessarily require an insertion point or debug information; typically because the statement amounts to a jump or a container of other statements.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3223
Parameters
- const clang::Stmt* S
- ArrayRef<const clang::Attr*> Attrs
Returns
True if the statement was handled.
¶void EmitStartEHSpec(const clang::Decl* D)
void EmitStartEHSpec(const clang::Decl* D)
Description
EmitStartEHSpec - Emit the start of the exception spec.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2385
Parameters
- const clang::Decl* D
¶void EmitStaticVarDecl(
const clang::VarDecl& D,
llvm::GlobalValue::LinkageTypes Linkage)
void EmitStaticVarDecl(
const clang::VarDecl& D,
llvm::GlobalValue::LinkageTypes Linkage)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3136
Parameters
- const clang::VarDecl& D
- llvm::GlobalValue::LinkageTypes Linkage
¶void EmitStmt(
const clang::Stmt* S,
ArrayRef<const clang::Attr*> Attrs = None)
void EmitStmt(
const clang::Stmt* S,
ArrayRef<const clang::Attr*> Attrs = None)
Description
EmitStmt - Emit the code for the statement This function may clear the current insertion point; callers should use EnsureInsertPoint if they wish to subsequently generate code without first calling EmitBlock, EmitBranch, or EmitStmt.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3215
Parameters
- const clang::Stmt* S
- ArrayRef<const clang::Attr*> Attrs = None
¶clang::CodeGen::LValue EmitStmtExprLValue(
const clang::StmtExpr* E)
clang::CodeGen::LValue EmitStmtExprLValue(
const clang::StmtExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3995
Parameters
- const clang::StmtExpr* E
¶void EmitStopPoint(const clang::Stmt* S)
void EmitStopPoint(const clang::Stmt* S)
Description
EmitStopPoint - Emit a debug stoppoint if we are emitting debug info.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3207
Parameters
- const clang::Stmt* S
¶void EmitStoreOfComplex(
clang::CodeGen::CodeGenFunction::ComplexPairTy
V,
clang::CodeGen::LValue dest,
bool isInit)
void EmitStoreOfComplex(
clang::CodeGen::CodeGenFunction::ComplexPairTy
V,
clang::CodeGen::LValue dest,
bool isInit)
Description
EmitStoreOfComplex - Store a complex number into the specified l-value.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4406
Parameters
- clang::CodeGen::CodeGenFunction::ComplexPairTy V
- clang::CodeGen::LValue dest
- bool isInit
¶void EmitStoreOfScalar(
llvm::Value* Value,
clang::CodeGen::Address Addr,
bool Volatile,
clang::QualType Ty,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type,
bool isInit = false,
bool isNontemporal = false)
void EmitStoreOfScalar(
llvm::Value* Value,
clang::CodeGen::Address Addr,
bool Volatile,
clang::QualType Ty,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type,
bool isInit = false,
bool isNontemporal = false)
Description
EmitStoreOfScalar - Store a scalar value to an address, taking care to appropriately convert from the memory representation to the LLVM value representation.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3849
Parameters
- llvm::Value* Value
- clang::CodeGen::Address Addr
- bool Volatile
- clang::QualType Ty
- clang::CodeGen::AlignmentSource Source = AlignmentSource::Type
- bool isInit = false
- bool isNontemporal = false
¶void EmitStoreOfScalar(
llvm::Value* Value,
clang::CodeGen::Address Addr,
bool Volatile,
clang::QualType Ty,
clang::CodeGen::LValueBaseInfo BaseInfo,
clang::CodeGen::TBAAAccessInfo TBAAInfo,
bool isInit = false,
bool isNontemporal = false)
void EmitStoreOfScalar(
llvm::Value* Value,
clang::CodeGen::Address Addr,
bool Volatile,
clang::QualType Ty,
clang::CodeGen::LValueBaseInfo BaseInfo,
clang::CodeGen::TBAAAccessInfo TBAAInfo,
bool isInit = false,
bool isNontemporal = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3857
Parameters
- llvm::Value* Value
- clang::CodeGen::Address Addr
- bool Volatile
- clang::QualType Ty
- clang::CodeGen::LValueBaseInfo BaseInfo
- clang::CodeGen::TBAAAccessInfo TBAAInfo
- bool isInit = false
- bool isNontemporal = false
¶void EmitStoreOfScalar(
llvm::Value* value,
clang::CodeGen::LValue lvalue,
bool isInit = false)
void EmitStoreOfScalar(
llvm::Value* value,
clang::CodeGen::LValue lvalue,
bool isInit = false)
Description
EmitStoreOfScalar - Store a scalar value to an address, taking care to appropriately convert from the memory representation to the LLVM value representation. The l-value must be a simple l-value. The isInit flag indicates whether this is an initialization. If so, atomic qualifiers are ignored and the store is always non-atomic.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3867
Parameters
- llvm::Value* value
- clang::CodeGen::LValue lvalue
- bool isInit = false
¶void EmitStoreThroughBitfieldLValue(
clang::CodeGen::RValue Src,
clang::CodeGen::LValue Dst,
llvm::Value** Result = nullptr)
void EmitStoreThroughBitfieldLValue(
clang::CodeGen::RValue Src,
clang::CodeGen::LValue Dst,
llvm::Value** Result = nullptr)
Description
EmitStoreThroughBitfieldLValue - Store Src into Dst with same constraints as EmitStoreThroughLValue.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3890
Parameters
- clang::CodeGen::RValue Src
- clang::CodeGen::LValue Dst
- llvm::Value** Result = nullptr
- [out] - If non-null, this will be set to a Value* for the bit-field contents after the store, appropriate for use as the result of an assignment to the bit-field.
¶void EmitStoreThroughExtVectorComponentLValue(
clang::CodeGen::RValue Src,
clang::CodeGen::LValue Dst)
void EmitStoreThroughExtVectorComponentLValue(
clang::CodeGen::RValue Src,
clang::CodeGen::LValue Dst)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3881
Parameters
¶void EmitStoreThroughGlobalRegLValue(
clang::CodeGen::RValue Src,
clang::CodeGen::LValue Dst)
void EmitStoreThroughGlobalRegLValue(
clang::CodeGen::RValue Src,
clang::CodeGen::LValue Dst)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3882
Parameters
¶void EmitStoreThroughLValue(
clang::CodeGen::RValue Src,
clang::CodeGen::LValue Dst,
bool isInit = false)
void EmitStoreThroughLValue(
clang::CodeGen::RValue Src,
clang::CodeGen::LValue Dst,
bool isInit = false)
Description
EmitStoreThroughLValue - Store the specified rvalue into the specified lvalue, where both are guaranteed to the have the same type, and that type is 'Ty'.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3880
Parameters
- clang::CodeGen::RValue Src
- clang::CodeGen::LValue Dst
- bool isInit = false
¶clang::CodeGen::LValue EmitStringLiteralLValue(
const clang::StringLiteral* E)
clang::CodeGen::LValue EmitStringLiteralLValue(
const clang::StringLiteral* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3907
Parameters
- const clang::StringLiteral* E
¶void EmitSwitchStmt(const clang::SwitchStmt& S)
void EmitSwitchStmt(const clang::SwitchStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3251
Parameters
- const clang::SwitchStmt& S
¶void EmitSynthesizedCXXCopyCtor(
clang::CodeGen::Address Dest,
clang::CodeGen::Address Src,
const clang::Expr* Exp)
void EmitSynthesizedCXXCopyCtor(
clang::CodeGen::Address Dest,
clang::CodeGen::Address Src,
const clang::Expr* Exp)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4487
Parameters
- clang::CodeGen::Address Dest
- clang::CodeGen::Address Src
- const clang::Expr* Exp
¶void EmitSynthesizedCXXCopyCtorCall(
const clang::CXXConstructorDecl* D,
clang::CodeGen::Address This,
clang::CodeGen::Address Src,
const clang::CXXConstructExpr* E)
void EmitSynthesizedCXXCopyCtorCall(
const clang::CXXConstructorDecl* D,
clang::CodeGen::Address This,
clang::CodeGen::Address Src,
const clang::CXXConstructExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2893
Parameters
- const clang::CXXConstructorDecl* D
- clang::CodeGen::Address This
- clang::CodeGen::Address Src
- const clang::CXXConstructExpr* E
¶llvm::Value* EmitSystemZBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitSystemZBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4248
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶llvm::Value* EmitTargetBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
llvm::Value* EmitTargetBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E,
clang::CodeGen::ReturnValueSlot ReturnValue)
Description
EmitTargetBuiltinExpr - Emit the given builtin call. Returns 0 if the call is unhandled by the current target.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4145
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
- clang::CodeGen::ReturnValueSlot ReturnValue
¶llvm::Value* EmitToMemory(llvm::Value* Value,
clang::QualType Ty)
llvm::Value* EmitToMemory(llvm::Value* Value,
clang::QualType Ty)
Description
EmitToMemory - Change a scalar value from its value representation to its in-memory representation.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3811
Parameters
- llvm::Value* Value
- clang::QualType Ty
¶llvm::CallInst* EmitTrapCall(
llvm::Intrinsic::ID IntrID)
llvm::CallInst* EmitTrapCall(
llvm::Intrinsic::ID IntrID)
Description
Emit a call to trap or debugtrap and attach function attribute "trap-func-name" if specified.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4631
Parameters
- llvm::Intrinsic::ID IntrID
¶void EmitTrapCheck(
llvm::Value* Checked,
clang::CodeGen::SanitizerHandler
CheckHandlerID)
void EmitTrapCheck(
llvm::Value* Checked,
clang::CodeGen::SanitizerHandler
CheckHandlerID)
Description
Create a basic block that will call the trap intrinsic, and emit a conditional branch to it, for the -ftrapv checks.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4627
Parameters
- llvm::Value* Checked
- clang::CodeGen::SanitizerHandler CheckHandlerID
¶void EmitTypeCheck(
clang::CodeGen::CodeGenFunction::TypeCheckKind
TCK,
clang::SourceLocation Loc,
llvm::Value* V,
clang::QualType Type,
clang::CharUnits Alignment =
CharUnits::Zero(),
clang::SanitizerSet SkippedChecks =
clang::SanitizerSet(),
llvm::Value* ArraySize = nullptr)
void EmitTypeCheck(
clang::CodeGen::CodeGenFunction::TypeCheckKind
TCK,
clang::SourceLocation Loc,
llvm::Value* V,
clang::QualType Type,
clang::CharUnits Alignment =
CharUnits::Zero(),
clang::SanitizerSet SkippedChecks =
clang::SanitizerSet(),
llvm::Value* ArraySize = nullptr)
Description
Emit a check that \p V is the address of storage of the appropriate size and alignment for an object of type \p Type (or if ArraySize is provided, for an array of that bound).
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2999
Parameters
- clang::CodeGen::CodeGenFunction::TypeCheckKind TCK
- clang::SourceLocation Loc
- llvm::Value* V
- clang::QualType Type
- clang::CharUnits Alignment = CharUnits::Zero()
- clang::SanitizerSet SkippedChecks = clang::SanitizerSet()
- llvm::Value* ArraySize = nullptr
¶void EmitTypeMetadataCodeForVCall(
const clang::CXXRecordDecl* RD,
llvm::Value* VTable,
clang::SourceLocation Loc)
void EmitTypeMetadataCodeForVCall(
const clang::CXXRecordDecl* RD,
llvm::Value* VTable,
clang::SourceLocation Loc)
Description
If whole-program virtual table optimization is enabled, emit an assumption that VTable is a member of RD's type identifier. Or, if vptr CFI is enabled, emit a check that VTable is a member of RD's type identifier.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2324
Parameters
- const clang::CXXRecordDecl* RD
- llvm::Value* VTable
- clang::SourceLocation Loc
¶clang::CodeGen::LValue EmitUnaryOpLValue(
const clang::UnaryOperator* E)
clang::CodeGen::LValue EmitUnaryOpLValue(
const clang::UnaryOperator* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3910
Parameters
- const clang::UnaryOperator* E
¶void EmitUnreachable(clang::SourceLocation Loc)
void EmitUnreachable(clang::SourceLocation Loc)
Description
Emit a reached-unreachable diagnostic if \p Loc is valid and runtime checking is enabled. Otherwise, just emit an unreachable instruction.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4623
Parameters
¶clang::CodeGen::LValue EmitUnsupportedLValue(
const clang::Expr* E,
const char* Name)
clang::CodeGen::LValue EmitUnsupportedLValue(
const clang::Expr* E,
const char* Name)
Description
EmitUnsupportedLValue - Emit a dummy l-value using the type of E and issue an ErrorUnsupported style diagnostic (using the provided Name).
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3752
Parameters
- const clang::Expr* E
- const char* Name
¶clang::CodeGen::RValue EmitUnsupportedRValue(
const clang::Expr* E,
const char* Name)
clang::CodeGen::RValue EmitUnsupportedRValue(
const clang::Expr* E,
const char* Name)
Description
EmitUnsupportedRValue - Emit a dummy r-value using the type of E and issue an ErrorUnsupported style diagnostic (using the provided Name).
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3747
Parameters
- const clang::Expr* E
- const char* Name
¶clang::CodeGen::Address EmitVAArg(
clang::VAArgExpr* VE,
clang::CodeGen::Address& VAListAddr)
clang::CodeGen::Address EmitVAArg(
clang::VAArgExpr* VE,
clang::CodeGen::Address& VAListAddr)
Description
Generate code to get an argument from the passed in pointer and update it accordingly.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2766
Parameters
- clang::VAArgExpr* VE
- The \c VAArgExpr for which to generate code.
- clang::CodeGen::Address& VAListAddr
- Receives a reference to the \c va_list as emitted by either \c EmitVAListRef or \c EmitMSVAListRef.
Returns
A pointer to the argument.
¶clang::CodeGen::LValue EmitVAArgExprLValue(
const clang::VAArgExpr* E)
clang::CodeGen::LValue EmitVAArgExprLValue(
const clang::VAArgExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3905
Parameters
- const clang::VAArgExpr* E
¶clang::CodeGen::Address EmitVAListRef(
const clang::Expr* E)
clang::CodeGen::Address EmitVAListRef(
const clang::Expr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2644
Parameters
- const clang::Expr* E
¶llvm::Value* EmitVAStartEnd(llvm::Value* ArgValue,
bool IsStart)
llvm::Value* EmitVAStartEnd(llvm::Value* ArgValue,
bool IsStart)
Description
Emits a call to an LLVM variable-argument intrinsic, either\c llvm.va_start or \c llvm.va_end.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2756
Parameters
- llvm::Value* ArgValue
- A reference to the \c va_list as emitted by either\c EmitVAListRef or \c EmitMSVAListRef.
- bool IsStart
- If \c true, emits a call to \c llvm.va_start; otherwise, calls \c llvm.va_end.
¶void EmitVTableAssumptionLoad(
const clang::CodeGen::CodeGenFunction::VPtr&
vptr,
clang::CodeGen::Address This)
void EmitVTableAssumptionLoad(
const clang::CodeGen::CodeGenFunction::VPtr&
vptr,
clang::CodeGen::Address This)
Description
Emit assumption that vptr load == global vtable.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2891
Parameters
- const clang::CodeGen::CodeGenFunction::VPtr& vptr
- clang::CodeGen::Address This
¶void EmitVTableAssumptionLoads(
const clang::CXXRecordDecl* ClassDecl,
clang::CodeGen::Address This)
void EmitVTableAssumptionLoads(
const clang::CXXRecordDecl* ClassDecl,
clang::CodeGen::Address This)
Description
Emit assumption load for all bases. Requires to be be called only on most-derived class and not under construction of the object.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2888
Parameters
- const clang::CXXRecordDecl* ClassDecl
- clang::CodeGen::Address This
¶void EmitVTablePtrCheck(
const clang::CXXRecordDecl* RD,
llvm::Value* VTable,
clang::CodeGen::CodeGenFunction::
CFITypeCheckKind TCK,
clang::SourceLocation Loc)
void EmitVTablePtrCheck(
const clang::CXXRecordDecl* RD,
llvm::Value* VTable,
clang::CodeGen::CodeGenFunction::
CFITypeCheckKind TCK,
clang::SourceLocation Loc)
Description
EmitVTablePtrCheck - Emit a check that VTable is a valid virtual table for RD using llvm.type.test.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2318
Parameters
- const clang::CXXRecordDecl* RD
- llvm::Value* VTable
- clang::CodeGen::CodeGenFunction::CFITypeCheckKind TCK
- clang::SourceLocation Loc
¶void EmitVTablePtrCheckForCall(
const clang::CXXRecordDecl* RD,
llvm::Value* VTable,
clang::CodeGen::CodeGenFunction::
CFITypeCheckKind TCK,
clang::SourceLocation Loc)
void EmitVTablePtrCheckForCall(
const clang::CXXRecordDecl* RD,
llvm::Value* VTable,
clang::CodeGen::CodeGenFunction::
CFITypeCheckKind TCK,
clang::SourceLocation Loc)
Description
EmitVTablePtrCheckForCall - Virtual method MD is being called via VTable. If vptr CFI is enabled, emit a check that VTable is valid.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2313
Parameters
- const clang::CXXRecordDecl* RD
- llvm::Value* VTable
- clang::CodeGen::CodeGenFunction::CFITypeCheckKind TCK
- clang::SourceLocation Loc
¶void EmitVTablePtrCheckForCast(
clang::QualType T,
clang::CodeGen::Address Derived,
bool MayBeNull,
clang::CodeGen::CodeGenFunction::
CFITypeCheckKind TCK,
clang::SourceLocation Loc)
void EmitVTablePtrCheckForCast(
clang::QualType T,
clang::CodeGen::Address Derived,
bool MayBeNull,
clang::CodeGen::CodeGenFunction::
CFITypeCheckKind TCK,
clang::SourceLocation Loc)
Description
Derived is the presumed address of an object of type T after a cast. If T is a polymorphic class type, emit a check that the virtual table for Derived belongs to a class derived from T.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2308
Parameters
- clang::QualType T
- clang::CodeGen::Address Derived
- bool MayBeNull
- clang::CodeGen::CodeGenFunction::CFITypeCheckKind TCK
- clang::SourceLocation Loc
¶llvm::Value* EmitVTableTypeCheckedLoad(
const clang::CXXRecordDecl* RD,
llvm::Value* VTable,
llvm::Type* VTableTy,
uint64_t VTableByteOffset)
llvm::Value* EmitVTableTypeCheckedLoad(
const clang::CXXRecordDecl* RD,
llvm::Value* VTable,
llvm::Type* VTableTy,
uint64_t VTableByteOffset)
Description
Emit a type checked load from the given vtable.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2333
Parameters
- const clang::CXXRecordDecl* RD
- llvm::Value* VTable
- llvm::Type* VTableTy
- uint64_t VTableByteOffset
¶void EmitVarAnnotations(const clang::VarDecl* D,
llvm::Value* V)
void EmitVarAnnotations(const clang::VarDecl* D,
llvm::Value* V)
Description
Emit local annotations for the local variable V, declared by D.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4505
Parameters
- const clang::VarDecl* D
- llvm::Value* V
¶void EmitVarDecl(const clang::VarDecl& D)
void EmitVarDecl(const clang::VarDecl& D)
Description
EmitVarDecl - Emit a local variable declaration. This function can be called with a null (unreachable) insert point.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3034
Parameters
- const clang::VarDecl& D
¶void EmitVariablyModifiedType(clang::QualType Ty)
void EmitVariablyModifiedType(clang::QualType Ty)
Description
EmitVLASize - Capture all the sizes for the VLA expressions in the given variably-modified type and store them in the VLASizeMap. This function can be called with a null (unreachable) insert point.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2778
Parameters
¶llvm::Value* EmitWebAssemblyBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitWebAssemblyBuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4250
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶void EmitWhileStmt(
const clang::WhileStmt& S,
ArrayRef<const clang::Attr*> Attrs = None)
void EmitWhileStmt(
const clang::WhileStmt& S,
ArrayRef<const clang::Attr*> Attrs = None)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3242
Parameters
- const clang::WhileStmt& S
- ArrayRef<const clang::Attr*> Attrs = None
¶llvm::Value* EmitX86BuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
llvm::Value* EmitX86BuiltinExpr(
unsigned int BuiltinID,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4245
Parameters
- unsigned int BuiltinID
- const clang::CallExpr* E
¶llvm::Value* EmitX86CpuInit()
llvm::Value* EmitX86CpuInit()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4814
¶llvm::Value* EmitX86CpuIs(
const clang::CallExpr* E)
llvm::Value* EmitX86CpuIs(
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4809
Parameters
- const clang::CallExpr* E
¶llvm::Value* EmitX86CpuIs(llvm::StringRef CPUStr)
llvm::Value* EmitX86CpuIs(llvm::StringRef CPUStr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4810
Parameters
- llvm::StringRef CPUStr
¶llvm::Value* EmitX86CpuSupports(uint64_t Mask)
llvm::Value* EmitX86CpuSupports(uint64_t Mask)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4813
Parameters
- uint64_t Mask
¶llvm::Value* EmitX86CpuSupports(
ArrayRef<llvm::StringRef> FeatureStrs)
llvm::Value* EmitX86CpuSupports(
ArrayRef<llvm::StringRef> FeatureStrs)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4812
Parameters
- ArrayRef<llvm::StringRef> FeatureStrs
¶llvm::Value* EmitX86CpuSupports(
const clang::CallExpr* E)
llvm::Value* EmitX86CpuSupports(
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4811
Parameters
- const clang::CallExpr* E
¶void EnsureInsertPoint()
void EnsureInsertPoint()
Description
EnsureInsertPoint - Ensure that an insertion point is defined so that emitted IR has a place to go. Note that by definition, if this function creates a block then that block is unreachable; callers may do better to detect when no insertion point is defined and simply skip IR generation.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2476
¶void EnterCXXTryStmt(const clang::CXXTryStmt& S,
bool IsFnTryBlock = false)
void EnterCXXTryStmt(const clang::CXXTryStmt& S,
bool IsFnTryBlock = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3275
Parameters
- const clang::CXXTryStmt& S
- bool IsFnTryBlock = false
¶void EnterDtorCleanups(
const clang::CXXDestructorDecl* Dtor,
clang::CXXDtorType Type)
void EnterDtorCleanups(
const clang::CXXDestructorDecl* Dtor,
clang::CXXDtorType Type)
Description
EnterDtorCleanups - Enter the cleanups necessary to complete the given phase of destruction for a destructor. The end result should call destructors on members and base classes in reverse order of their construction.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2342
Parameters
- const clang::CXXDestructorDecl* Dtor
- clang::CXXDtorType Type
¶void EnterSEHTryStmt(const clang::SEHTryStmt& S)
void EnterSEHTryStmt(const clang::SEHTryStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3281
Parameters
- const clang::SEHTryStmt& S
¶void ErrorUnsupported(const clang::Stmt* S,
const char* Type)
void ErrorUnsupported(const clang::Stmt* S,
const char* Type)
Description
ErrorUnsupported - Print out an error that codegen doesn't support the specified stmt yet.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2483
Parameters
- const clang::Stmt* S
- const char* Type
¶llvm::Value* EvaluateExprAsBool(
const clang::Expr* E)
llvm::Value* EvaluateExprAsBool(
const clang::Expr* E)
Description
EvaluateExprAsBool - Perform the usual unary conversions on the specified expression and compare the result against zero, returning an Int1Ty value.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2627
Parameters
- const clang::Expr* E
¶void ExitCXXTryStmt(const clang::CXXTryStmt& S,
bool IsFnTryBlock = false)
void ExitCXXTryStmt(const clang::CXXTryStmt& S,
bool IsFnTryBlock = false)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3276
Parameters
- const clang::CXXTryStmt& S
- bool IsFnTryBlock = false
¶void ExitSEHTryStmt(const clang::SEHTryStmt& S)
void ExitSEHTryStmt(const clang::SEHTryStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3282
Parameters
- const clang::SEHTryStmt& S
¶void ExpandTypeFromArgs(
clang::QualType Ty,
clang::CodeGen::LValue Dst,
llvm::Function::arg_iterator& AI)
void ExpandTypeFromArgs(
clang::QualType Ty,
clang::CodeGen::LValue Dst,
llvm::Function::arg_iterator& AI)
Description
ExpandTypeFromArgs - Reconstruct a structure of type
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4684
Parameters
- clang::QualType Ty
- clang::CodeGen::LValue Dst
- llvm::Function::arg_iterator& AI
- - The first function argument of the expansion.
¶void ExpandTypeToArgs(
clang::QualType Ty,
clang::CodeGen::CallArg Arg,
llvm::FunctionType* IRFuncTy,
SmallVectorImpl<llvm::Value*>& IRCallArgs,
unsigned int& IRCallArgPos)
void ExpandTypeToArgs(
clang::QualType Ty,
clang::CodeGen::CallArg Arg,
llvm::FunctionType* IRFuncTy,
SmallVectorImpl<llvm::Value*>& IRCallArgs,
unsigned int& IRCallArgPos)
Description
ExpandTypeToArgs - Expand an CallArg
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4690
Parameters
- clang::QualType Ty
- clang::CodeGen::CallArg Arg
- llvm::FunctionType* IRFuncTy
- SmallVectorImpl<llvm::Value*>& IRCallArgs
- unsigned int& IRCallArgPos
¶void FinishFunction(clang::SourceLocation EndLoc =
clang::SourceLocation())
void FinishFunction(clang::SourceLocation EndLoc =
clang::SourceLocation())
Description
FinishFunction - Complete IR generation of the current function. It is legal to call this function even if there is no current insertion point.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2238
Parameters
- clang::SourceLocation EndLoc = clang::SourceLocation()
¶void FinishThunk()
void FinishThunk()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2246
¶llvm::Value* FormResolverCondition(
const clang::CodeGen::CodeGenFunction::
MultiVersionResolverOption& RO)
llvm::Value* FormResolverCondition(
const clang::CodeGen::CodeGenFunction::
MultiVersionResolverOption& RO)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4815
Parameters
- const clang::CodeGen::CodeGenFunction:: MultiVersionResolverOption& RO
¶llvm::Function* GenerateBlockFunction(
clang::GlobalDecl GD,
const clang::CodeGen::CGBlockInfo& Info,
const clang::CodeGen::CodeGenFunction::
DeclMapTy& ldm,
bool IsLambdaConversionToBlock,
bool BuildGlobalBlock)
llvm::Function* GenerateBlockFunction(
clang::GlobalDecl GD,
const clang::CodeGen::CGBlockInfo& Info,
const clang::CodeGen::CodeGenFunction::
DeclMapTy& ldm,
bool IsLambdaConversionToBlock,
bool BuildGlobalBlock)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2132
Parameters
- clang::GlobalDecl GD
- const clang::CodeGen::CGBlockInfo& Info
- const clang::CodeGen::CodeGenFunction::DeclMapTy& ldm
- bool IsLambdaConversionToBlock
- bool BuildGlobalBlock
¶void GenerateCXXGlobalCleanUpFunc(
llvm::Function* Fn,
ArrayRef<std::tuple<llvm::FunctionType*,
llvm::WeakTrackingVH,
llvm::Constant*>>
DtorsOrStermFinalizers)
void GenerateCXXGlobalCleanUpFunc(
llvm::Function* Fn,
ArrayRef<std::tuple<llvm::FunctionType*,
llvm::WeakTrackingVH,
llvm::Constant*>>
DtorsOrStermFinalizers)
Description
GenerateCXXGlobalCleanUpFunc - Generates code for cleaning up global variables.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4474
Parameters
- llvm::Function* Fn
- ArrayRef<std::tuple<llvm::FunctionType*, llvm::WeakTrackingVH, llvm::Constant*>> DtorsOrStermFinalizers
¶void GenerateCXXGlobalInitFunc(
llvm::Function* Fn,
ArrayRef<llvm::Function*> CXXThreadLocals,
clang::CodeGen::ConstantAddress Guard =
ConstantAddress::invalid())
void GenerateCXXGlobalInitFunc(
llvm::Function* Fn,
ArrayRef<llvm::Function*> CXXThreadLocals,
clang::CodeGen::ConstantAddress Guard =
ConstantAddress::invalid())
Description
GenerateCXXGlobalInitFunc - Generates code for initializing global variables.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4468
Parameters
- llvm::Function* Fn
- ArrayRef<llvm::Function*> CXXThreadLocals
- clang::CodeGen::ConstantAddress Guard = ConstantAddress::invalid()
¶void GenerateCXXGlobalVarDeclInitFunc(
llvm::Function* Fn,
const clang::VarDecl* D,
llvm::GlobalVariable* Addr,
bool PerformInit)
void GenerateCXXGlobalVarDeclInitFunc(
llvm::Function* Fn,
const clang::VarDecl* D,
llvm::GlobalVariable* Addr,
bool PerformInit)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4480
Parameters
- llvm::Function* Fn
- const clang::VarDecl* D
- llvm::GlobalVariable* Addr
- bool PerformInit
¶clang::CodeGen::Address
GenerateCapturedStmtArgument(
const clang::CapturedStmt& S)
clang::CodeGen::Address
GenerateCapturedStmtArgument(
const clang::CapturedStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3343
Parameters
- const clang::CapturedStmt& S
¶llvm::Function* GenerateCapturedStmtFunction(
const clang::CapturedStmt& S)
llvm::Function* GenerateCapturedStmtFunction(
const clang::CapturedStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3342
Parameters
- const clang::CapturedStmt& S
¶void GenerateCode(
clang::GlobalDecl GD,
llvm::Function* Fn,
const clang::CodeGen::CGFunctionInfo& FnInfo)
void GenerateCode(
clang::GlobalDecl GD,
llvm::Function* Fn,
const clang::CodeGen::CGFunctionInfo& FnInfo)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2194
Parameters
- clang::GlobalDecl GD
- llvm::Function* Fn
- const clang::CodeGen::CGFunctionInfo& FnInfo
¶llvm::Constant* GenerateCopyHelperFunction(
const clang::CodeGen::CGBlockInfo& blockInfo)
llvm::Constant* GenerateCopyHelperFunction(
const clang::CodeGen::CGBlockInfo& blockInfo)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2141
Parameters
- const clang::CodeGen::CGBlockInfo& blockInfo
¶llvm::Constant* GenerateDestroyHelperFunction(
const clang::CodeGen::CGBlockInfo& blockInfo)
llvm::Constant* GenerateDestroyHelperFunction(
const clang::CodeGen::CGBlockInfo& blockInfo)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2142
Parameters
- const clang::CodeGen::CGBlockInfo& blockInfo
¶llvm::Constant*
GenerateObjCAtomicGetterCopyHelperFunction(
const clang::ObjCPropertyImplDecl* PID)
llvm::Constant*
GenerateObjCAtomicGetterCopyHelperFunction(
const clang::ObjCPropertyImplDecl* PID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2145
Parameters
- const clang::ObjCPropertyImplDecl* PID
¶llvm::Constant*
GenerateObjCAtomicSetterCopyHelperFunction(
const clang::ObjCPropertyImplDecl* PID)
llvm::Constant*
GenerateObjCAtomicSetterCopyHelperFunction(
const clang::ObjCPropertyImplDecl* PID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2143
Parameters
- const clang::ObjCPropertyImplDecl* PID
¶void GenerateObjCCtorDtorMethod(
clang::ObjCImplementationDecl* IMP,
clang::ObjCMethodDecl* MD,
bool ctor)
void GenerateObjCCtorDtorMethod(
clang::ObjCImplementationDecl* IMP,
clang::ObjCMethodDecl* MD,
bool ctor)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2111
Parameters
- clang::ObjCImplementationDecl* IMP
- clang::ObjCMethodDecl* MD
- bool ctor
¶void GenerateObjCGetter(
clang::ObjCImplementationDecl* IMP,
const clang::ObjCPropertyImplDecl* PID)
void GenerateObjCGetter(
clang::ObjCImplementationDecl* IMP,
const clang::ObjCPropertyImplDecl* PID)
Description
GenerateObjCGetter - Synthesize an Objective-C property getter function.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2104
Parameters
- clang::ObjCImplementationDecl* IMP
- const clang::ObjCPropertyImplDecl* PID
¶void GenerateObjCMethod(
const clang::ObjCMethodDecl* OMD)
void GenerateObjCMethod(
const clang::ObjCMethodDecl* OMD)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2099
Parameters
- const clang::ObjCMethodDecl* OMD
¶void GenerateObjCSetter(
clang::ObjCImplementationDecl* IMP,
const clang::ObjCPropertyImplDecl* PID)
void GenerateObjCSetter(
clang::ObjCImplementationDecl* IMP,
const clang::ObjCPropertyImplDecl* PID)
Description
GenerateObjCSetter - Synthesize an Objective-C property setter function for the given property.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2116
Parameters
- clang::ObjCImplementationDecl* IMP
- const clang::ObjCPropertyImplDecl* PID
¶llvm::Function*
GenerateOpenMPCapturedStmtFunction(
const clang::CapturedStmt& S,
clang::SourceLocation Loc)
llvm::Function*
GenerateOpenMPCapturedStmtFunction(
const clang::CapturedStmt& S,
clang::SourceLocation Loc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3344
Parameters
- const clang::CapturedStmt& S
- clang::SourceLocation Loc
¶void GenerateOpenMPCapturedVars(
const clang::CapturedStmt& S,
SmallVectorImpl<llvm::Value*>& CapturedVars)
void GenerateOpenMPCapturedVars(
const clang::CapturedStmt& S,
SmallVectorImpl<llvm::Value*>& CapturedVars)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3346
Parameters
- const clang::CapturedStmt& S
- SmallVectorImpl<llvm::Value*>& CapturedVars
¶llvm::Function* GenerateSEHFilterFunction(
clang::CodeGen::CodeGenFunction& ParentCGF,
const clang::SEHExceptStmt& Except)
llvm::Function* GenerateSEHFilterFunction(
clang::CodeGen::CodeGenFunction& ParentCGF,
const clang::SEHExceptStmt& Except)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3291
Parameters
- clang::CodeGen::CodeGenFunction& ParentCGF
- const clang::SEHExceptStmt& Except
¶llvm::Function* GenerateSEHFinallyFunction(
clang::CodeGen::CodeGenFunction& ParentCGF,
const clang::SEHFinallyStmt& Finally)
llvm::Function* GenerateSEHFinallyFunction(
clang::CodeGen::CodeGenFunction& ParentCGF,
const clang::SEHFinallyStmt& Finally)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3294
Parameters
- clang::CodeGen::CodeGenFunction& ParentCGF
- const clang::SEHFinallyStmt& Finally
¶llvm::Function* GenerateVarArgsThunk(
llvm::Function* Fn,
const clang::CodeGen::CGFunctionInfo& FnInfo,
clang::GlobalDecl GD,
const clang::ThunkInfo& Thunk)
llvm::Function* GenerateVarArgsThunk(
llvm::Function* Fn,
const clang::CodeGen::CGFunctionInfo& FnInfo,
clang::GlobalDecl GD,
const clang::ThunkInfo& Thunk)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2257
Parameters
- llvm::Function* Fn
- const clang::CodeGen::CGFunctionInfo& FnInfo
- clang::GlobalDecl GD
- const clang::ThunkInfo& Thunk
¶clang::CodeGen::Address GetAddrOfBlockDecl(
const clang::VarDecl* var)
clang::CodeGen::Address GetAddrOfBlockDecl(
const clang::VarDecl* var)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2179
Parameters
- const clang::VarDecl* var
¶llvm::BlockAddress* GetAddrOfLabel(
const clang::LabelDecl* L)
llvm::BlockAddress* GetAddrOfLabel(
const clang::LabelDecl* L)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2739
Parameters
- const clang::LabelDecl* L
¶clang::CodeGen::Address GetAddrOfLocalVar(
const clang::VarDecl* VD)
clang::CodeGen::Address GetAddrOfLocalVar(
const clang::VarDecl* VD)
Description
GetAddrOfLocalVar - Return the address of a local variable.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2717
Parameters
- const clang::VarDecl* VD
¶clang::CodeGen::Address GetAddressOfBaseClass(
clang::CodeGen::Address Value,
const clang::CXXRecordDecl* Derived,
CastExpr::path_const_iterator PathBegin,
CastExpr::path_const_iterator PathEnd,
bool NullCheckValue,
clang::SourceLocation Loc)
clang::CodeGen::Address GetAddressOfBaseClass(
clang::CodeGen::Address Value,
const clang::CXXRecordDecl* Derived,
CastExpr::path_const_iterator PathBegin,
CastExpr::path_const_iterator PathEnd,
bool NullCheckValue,
clang::SourceLocation Loc)
Description
GetAddressOfBaseClass - This function will add the necessary delta to the load of 'this' and returns address of the base class.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2828
Parameters
- clang::CodeGen::Address Value
- const clang::CXXRecordDecl* Derived
- CastExpr::path_const_iterator PathBegin
- CastExpr::path_const_iterator PathEnd
- bool NullCheckValue
- clang::SourceLocation Loc
¶clang::CodeGen::Address GetAddressOfDerivedClass(
clang::CodeGen::Address Value,
const clang::CXXRecordDecl* Derived,
CastExpr::path_const_iterator PathBegin,
CastExpr::path_const_iterator PathEnd,
bool NullCheckValue)
clang::CodeGen::Address GetAddressOfDerivedClass(
clang::CodeGen::Address Value,
const clang::CXXRecordDecl* Derived,
CastExpr::path_const_iterator PathBegin,
CastExpr::path_const_iterator PathEnd,
bool NullCheckValue)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2834
Parameters
- clang::CodeGen::Address Value
- const clang::CXXRecordDecl* Derived
- CastExpr::path_const_iterator PathBegin
- CastExpr::path_const_iterator PathEnd
- bool NullCheckValue
¶clang::CodeGen::Address
GetAddressOfDirectBaseInCompleteClass(
clang::CodeGen::Address Value,
const clang::CXXRecordDecl* Derived,
const clang::CXXRecordDecl* Base,
bool BaseIsVirtual)
clang::CodeGen::Address
GetAddressOfDirectBaseInCompleteClass(
clang::CodeGen::Address Value,
const clang::CXXRecordDecl* Derived,
const clang::CXXRecordDecl* Base,
bool BaseIsVirtual)
Description
GetAddressOfBaseOfCompleteClass - Convert the given pointer to a complete class to the given direct base.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2819
Parameters
- clang::CodeGen::Address Value
- const clang::CXXRecordDecl* Derived
- const clang::CXXRecordDecl* Base
- bool BaseIsVirtual
¶llvm::BasicBlock* GetIndirectGotoBlock()
llvm::BasicBlock* GetIndirectGotoBlock()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2740
¶clang::CodeGen::RValue GetUndefRValue(
clang::QualType Ty)
clang::CodeGen::RValue GetUndefRValue(
clang::QualType Ty)
Description
GetUndefRValue - Get an appropriate 'undef' rvalue for the given type.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3742
Parameters
¶llvm::Value* GetVTTParameter(clang::GlobalDecl GD,
bool ForVirtualBase,
bool Delegating)
llvm::Value* GetVTTParameter(clang::GlobalDecl GD,
bool ForVirtualBase,
bool Delegating)
Description
GetVTTParameter - Return the VTT parameter that should be passed to a base constructor/destructor with virtual bases. FIXME: VTTs are Itanium ABI-specific, so the definition should move to ItaniumCXXABI.cpp together with all the references to VTT.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2844
Parameters
- clang::GlobalDecl GD
- bool ForVirtualBase
- bool Delegating
¶llvm::Value* GetVTablePtr(
clang::CodeGen::Address This,
llvm::Type* VTableTy,
const clang::CXXRecordDecl* VTableClass)
llvm::Value* GetVTablePtr(
clang::CodeGen::Address This,
llvm::Type* VTableTy,
const clang::CXXRecordDecl* VTableClass)
Description
GetVTablePtr - Return the Value of the vtable pointer member pointed to by This.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2292
Parameters
- clang::CodeGen::Address This
- llvm::Type* VTableTy
- const clang::CXXRecordDecl* VTableClass
¶llvm::Value* GetValueForARMHint(
unsigned int BuiltinID)
llvm::Value* GetValueForARMHint(
unsigned int BuiltinID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4808
Parameters
- unsigned int BuiltinID
¶bool HaveInsertPoint() const
bool HaveInsertPoint() const
Description
HaveInsertPoint - True if an insertion point is defined. If not, this indicates that the current code being emitted is unreachable.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2468
¶clang::CodeGen::LValue InitCapturedStruct(
const clang::CapturedStmt& S)
clang::CodeGen::LValue InitCapturedStruct(
const clang::CapturedStmt& S)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3340
Parameters
- const clang::CapturedStmt& S
¶void InitializeVTablePointer(
const clang::CodeGen::CodeGenFunction::VPtr&
vptr)
void InitializeVTablePointer(
const clang::CodeGen::CodeGenFunction::VPtr&
vptr)
Description
Initialize the vtable pointer of the given subobject.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2275
Parameters
- const clang::CodeGen::CodeGenFunction::VPtr& vptr
¶void InitializeVTablePointers(
const clang::CXXRecordDecl* ClassDecl)
void InitializeVTablePointers(
const clang::CXXRecordDecl* ClassDecl)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2288
Parameters
- const clang::CXXRecordDecl* ClassDecl
¶void InsertHelper(
llvm::Instruction* I,
const llvm::Twine& Name,
llvm::BasicBlock* BB,
llvm::BasicBlock::iterator InsertPt) const
void InsertHelper(
llvm::Instruction* I,
const llvm::Twine& Name,
llvm::BasicBlock* BB,
llvm::BasicBlock::iterator InsertPt) const
Description
CGBuilder insert helper. This function is called after an instruction is created using Builder.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:314
Parameters
- llvm::Instruction* I
- const llvm::Twine& Name
- llvm::BasicBlock* BB
- llvm::BasicBlock::iterator InsertPt
¶static bool IsConstructorDelegationValid(
const clang::CXXConstructorDecl* Ctor)
static bool IsConstructorDelegationValid(
const clang::CXXConstructorDecl* Ctor)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2212
Parameters
- const clang::CXXConstructorDecl* Ctor
¶static bool IsWrappedCXXThis(const clang::Expr* E)
static bool IsWrappedCXXThis(const clang::Expr* E)
Description
Check if \p E is a C++ "this" pointer wrapped in value-preserving casts.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2743
Parameters
- const clang::Expr* E
¶bool LValueIsSuitableForInlineAtomic(
clang::CodeGen::LValue Src)
bool LValueIsSuitableForInlineAtomic(
clang::CodeGen::LValue Src)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3783
Parameters
¶clang::CodeGen::Address LoadBlockStruct()
clang::CodeGen::Address LoadBlockStruct()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2178
¶llvm::Value* LoadCXXThis()
llvm::Value* LoadCXXThis()
Description
LoadCXXThis - Load the value of 'this'. This function is only valid while generating code for an C++ member function.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2801
¶clang::CodeGen::Address LoadCXXThisAddress()
clang::CodeGen::Address LoadCXXThisAddress()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2805
¶llvm::Value* LoadCXXVTT()
llvm::Value* LoadCXXVTT()
Description
LoadCXXVTT - Load the VTT parameter to base constructors/destructors have virtual bases.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2811
¶llvm::Value* LoadObjCSelf()
llvm::Value* LoadObjCSelf()
Description
LoadObjCSelf - Load the value of self. This function is only valid while generating code for an Objective-C method.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2410
¶llvm::Value* LoadPassedObjectSize(
const clang::Expr* E,
clang::QualType EltTy)
llvm::Value* LoadPassedObjectSize(
const clang::Expr* E,
clang::QualType EltTy)
Description
If \p E references a parameter with pass_object_size info or a constant array size modifier, emit the object size divided by the size of \p EltTy. Otherwise return null.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4773
Parameters
- const clang::Expr* E
- clang::QualType EltTy
¶llvm::Function* LookupNeonLLVMIntrinsic(
unsigned int IntrinsicID,
unsigned int Modifier,
llvm::Type* ArgTy,
const clang::CallExpr* E)
llvm::Function* LookupNeonLLVMIntrinsic(
unsigned int IntrinsicID,
unsigned int Modifier,
llvm::Type* ArgTy,
const clang::CallExpr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4176
Parameters
- unsigned int IntrinsicID
- unsigned int Modifier
- llvm::Type* ArgTy
- const clang::CallExpr* E
¶clang::CodeGen::LValue MakeAddrLValue(
clang::CodeGen::Address Addr,
clang::QualType T,
clang::CodeGen::LValueBaseInfo BaseInfo,
clang::CodeGen::TBAAAccessInfo TBAAInfo)
clang::CodeGen::LValue MakeAddrLValue(
clang::CodeGen::Address Addr,
clang::QualType T,
clang::CodeGen::LValueBaseInfo BaseInfo,
clang::CodeGen::TBAAAccessInfo TBAAInfo)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2495
Parameters
- clang::CodeGen::Address Addr
- clang::QualType T
- clang::CodeGen::LValueBaseInfo BaseInfo
- clang::CodeGen::TBAAAccessInfo TBAAInfo
¶clang::CodeGen::LValue MakeAddrLValue(
clang::CodeGen::Address Addr,
clang::QualType T,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type)
clang::CodeGen::LValue MakeAddrLValue(
clang::CodeGen::Address Addr,
clang::QualType T,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2489
Parameters
- clang::CodeGen::Address Addr
- clang::QualType T
- clang::CodeGen::AlignmentSource Source = AlignmentSource::Type
¶clang::CodeGen::LValue MakeAddrLValue(
llvm::Value* V,
clang::QualType T,
clang::CharUnits Alignment,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type)
clang::CodeGen::LValue MakeAddrLValue(
llvm::Value* V,
clang::QualType T,
clang::CharUnits Alignment,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2500
Parameters
- llvm::Value* V
- clang::QualType T
- clang::CharUnits Alignment
- clang::CodeGen::AlignmentSource Source = AlignmentSource::Type
¶clang::CodeGen::LValue MakeAddrLValueWithoutTBAA(
clang::CodeGen::Address Addr,
clang::QualType T,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type)
clang::CodeGen::LValue MakeAddrLValueWithoutTBAA(
clang::CodeGen::Address Addr,
clang::QualType T,
clang::CodeGen::AlignmentSource Source =
AlignmentSource::Type)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2508
Parameters
- clang::CodeGen::Address Addr
- clang::QualType T
- clang::CodeGen::AlignmentSource Source = AlignmentSource::Type
¶clang::CodeGen::LValue MakeNaturalAlignAddrLValue(
llvm::Value* V,
clang::QualType T)
clang::CodeGen::LValue MakeNaturalAlignAddrLValue(
llvm::Value* V,
clang::QualType T)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2515
Parameters
¶clang::CodeGen::LValue
MakeNaturalAlignPointeeAddrLValue(
llvm::Value* V,
clang::QualType T)
clang::CodeGen::LValue
MakeNaturalAlignPointeeAddrLValue(
llvm::Value* V,
clang::QualType T)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2514
Parameters
¶void PopCleanupBlock(
bool FallThroughIsBranchThrough = false)
void PopCleanupBlock(
bool FallThroughIsBranchThrough = false)
Description
PopCleanupBlock - Will pop the cleanup entry on the stack and process all branch fixups.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:847
Parameters
- bool FallThroughIsBranchThrough = false
¶void PopCleanupBlocks(
EHScopeStack::stable_iterator
OldCleanupStackSize,
std::initializer_list<llvm::Value**>
ValuesToReload = {})
void PopCleanupBlocks(
EHScopeStack::stable_iterator
OldCleanupStackSize,
std::initializer_list<llvm::Value**>
ValuesToReload = {})
Description
Takes the old cleanup stack size and emits the cleanup blocks that have been added.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1134
Parameters
- EHScopeStack::stable_iterator OldCleanupStackSize
- std::initializer_list<llvm::Value**> ValuesToReload = {}
¶void PopCleanupBlocks(
EHScopeStack::stable_iterator
OldCleanupStackSize,
size_t OldLifetimeExtendedStackSize,
std::initializer_list<llvm::Value**>
ValuesToReload = {})
void PopCleanupBlocks(
EHScopeStack::stable_iterator
OldCleanupStackSize,
size_t OldLifetimeExtendedStackSize,
std::initializer_list<llvm::Value**>
ValuesToReload = {})
Description
Takes the old cleanup stack size and emits the cleanup blocks that have been added, then adds all lifetime-extended cleanups from the given position to the stack.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1141
Parameters
- EHScopeStack::stable_iterator OldCleanupStackSize
- size_t OldLifetimeExtendedStackSize
- std::initializer_list<llvm::Value**> ValuesToReload = {}
¶bool ProcessOrderScopeAMDGCN(
llvm::Value* Order,
llvm::Value* Scope,
llvm::AtomicOrdering& AO,
llvm::SyncScope::ID& SSID)
bool ProcessOrderScopeAMDGCN(
llvm::Value* Order,
llvm::Value* Scope,
llvm::AtomicOrdering& AO,
llvm::SyncScope::ID& SSID)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4255
Parameters
- llvm::Value* Order
- llvm::Value* Scope
- llvm::AtomicOrdering& AO
- llvm::SyncScope::ID& SSID
¶void PushDestructorCleanup(
clang::QualType T,
clang::CodeGen::Address Addr)
void PushDestructorCleanup(
clang::QualType T,
clang::CodeGen::Address Addr)
Description
PushDestructorCleanup - Push a cleanup to call the complete-object destructor of an object of the given type at the given address. Does nothing if T is not a C++ class type with a non-trivial destructor.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:837
Parameters
¶void PushDestructorCleanup(
const clang::CXXDestructorDecl* Dtor,
clang::QualType T,
clang::CodeGen::Address Addr)
void PushDestructorCleanup(
const clang::CXXDestructorDecl* Dtor,
clang::QualType T,
clang::CodeGen::Address Addr)
Description
PushDestructorCleanup - Push a cleanup to call the complete-object variant of the given destructor on the object at the given address.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:842
Parameters
- const clang::CXXDestructorDecl* Dtor
- clang::QualType T
- clang::CodeGen::Address Addr
¶void ResolveBranchFixups(llvm::BasicBlock* Target)
void ResolveBranchFixups(llvm::BasicBlock* Target)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1145
Parameters
- llvm::BasicBlock* Target
¶llvm::Type* SVEBuiltinMemEltTy(
const clang::SVETypeFlags& TypeFlags)
llvm::Type* SVEBuiltinMemEltTy(
const clang::SVETypeFlags& TypeFlags)
Description
SVEBuiltinMemEltTy - Returns the memory element type for this memory access builtin. Only required if it can't be inferred from the base pointer operand.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4194
Parameters
- const clang::SVETypeFlags& TypeFlags
¶void SetFPAccuracy(llvm::Value* Val,
float Accuracy)
void SetFPAccuracy(llvm::Value* Val,
float Accuracy)
Description
SetFPAccuracy - Set the minimum required accuracy of the given floating point operation, expressed as the maximum relative error in ulp.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4655
Parameters
- llvm::Value* Val
- float Accuracy
¶void SetFastMathFlags(clang::FPOptions FPFeatures)
void SetFastMathFlags(clang::FPOptions FPFeatures)
Description
Set the codegen fast-math flags.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4658
Parameters
- clang::FPOptions FPFeatures
¶bool ShouldEmitVTableTypeCheckedLoad(
const clang::CXXRecordDecl* RD)
bool ShouldEmitVTableTypeCheckedLoad(
const clang::CXXRecordDecl* RD)
Description
Returns whether we should perform a type checked load when loading a virtual function for virtual calls to members of RD. This is generally true when both vcall CFI and whole-program-vtables are enabled.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2330
Parameters
- const clang::CXXRecordDecl* RD
¶bool ShouldInstrumentFunction()
bool ShouldInstrumentFunction()
Description
ShouldInstrumentFunction - Return true if the current function should be instrumented with __cyg_profile_func_* calls
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2346
¶static bool ShouldNullCheckClassCastValue(
const clang::CastExpr* Cast)
static bool ShouldNullCheckClassCastValue(
const clang::CastExpr* Cast)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2824
Parameters
- const clang::CastExpr* Cast
¶bool ShouldSkipSanitizerInstrumentation()
bool ShouldSkipSanitizerInstrumentation()
Description
ShouldSkipSanitizerInstrumentation - Return true if the current function should not be instrumented with sanitizers.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2350
¶bool ShouldXRayInstrumentFunction() const
bool ShouldXRayInstrumentFunction() const
Description
ShouldXRayInstrument - Return true if the current function should be instrumented with XRay nop sleds.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2354
¶void SimplifyForwardingBlocks(
llvm::BasicBlock* BB)
void SimplifyForwardingBlocks(
llvm::BasicBlock* BB)
Description
SimplifyForwardingBlocks - If the given basic block is only a branch to another basic block, simplify it. This assumes that no other code could potentially reference the basic block.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2440
Parameters
- llvm::BasicBlock* BB
¶llvm::DebugLoc SourceLocToDebugLoc(
clang::SourceLocation Location)
llvm::DebugLoc SourceLocToDebugLoc(
clang::SourceLocation Location)
Description
Converts Location to a DebugLoc, if debug information is enabled.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3016
Parameters
- clang::SourceLocation Location
¶void StartFunction(
clang::GlobalDecl GD,
clang::QualType RetTy,
llvm::Function* Fn,
const clang::CodeGen::CGFunctionInfo& FnInfo,
const clang::CodeGen::FunctionArgList& Args,
clang::SourceLocation Loc =
clang::SourceLocation(),
clang::SourceLocation StartLoc =
clang::SourceLocation())
void StartFunction(
clang::GlobalDecl GD,
clang::QualType RetTy,
llvm::Function* Fn,
const clang::CodeGen::CGFunctionInfo& FnInfo,
const clang::CodeGen::FunctionArgList& Args,
clang::SourceLocation Loc =
clang::SourceLocation(),
clang::SourceLocation StartLoc =
clang::SourceLocation())
Description
Emit code for the start of a function.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2204
Parameters
- clang::GlobalDecl GD
- clang::QualType RetTy
- llvm::Function* Fn
- const clang::CodeGen::CGFunctionInfo& FnInfo
- const clang::CodeGen::FunctionArgList& Args
- clang::SourceLocation Loc = clang::SourceLocation()
- The location to be associated with the function.
- clang::SourceLocation StartLoc = clang::SourceLocation()
- The location of the function body.
¶void StartObjCMethod(
const clang::ObjCMethodDecl* MD,
const clang::ObjCContainerDecl* CD)
void StartObjCMethod(
const clang::ObjCMethodDecl* MD,
const clang::ObjCContainerDecl* CD)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2101
Parameters
- const clang::ObjCMethodDecl* MD
- const clang::ObjCContainerDecl* CD
¶void StartThunk(
llvm::Function* Fn,
clang::GlobalDecl GD,
const clang::CodeGen::CGFunctionInfo& FnInfo,
bool IsUnprototyped)
void StartThunk(
llvm::Function* Fn,
clang::GlobalDecl GD,
const clang::CodeGen::CGFunctionInfo& FnInfo,
bool IsUnprototyped)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2240
Parameters
- llvm::Function* Fn
- clang::GlobalDecl GD
- const clang::CodeGen::CGFunctionInfo& FnInfo
- bool IsUnprototyped
¶clang::QualType TypeOfSelfObject()
clang::QualType TypeOfSelfObject()
Description
TypeOfSelfObject - Return type of object that this self represents.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2413
¶void VolatilizeTryBlocks(
llvm::BasicBlock* BB,
llvm::SmallPtrSet<llvm::BasicBlock*, 10>& V)
void VolatilizeTryBlocks(
llvm::BasicBlock* BB,
llvm::SmallPtrSet<llvm::BasicBlock*, 10>& V)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3283
Parameters
- llvm::BasicBlock* BB
- llvm::SmallPtrSet<llvm::BasicBlock*, 10>& V
¶clang::CodeGen::BlockByrefHelpers*
buildByrefHelpers(
llvm::StructType& byrefType,
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission)
clang::CodeGen::BlockByrefHelpers*
buildByrefHelpers(
llvm::StructType& byrefType,
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4803
Parameters
- llvm::StructType& byrefType
- const clang::CodeGen::CodeGenFunction:: AutoVarEmission& emission
¶void callCStructCopyAssignmentOperator(
clang::CodeGen::LValue Dst,
clang::CodeGen::LValue Src)
void callCStructCopyAssignmentOperator(
clang::CodeGen::LValue Dst,
clang::CodeGen::LValue Src)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4081
Parameters
¶void callCStructCopyConstructor(
clang::CodeGen::LValue Dst,
clang::CodeGen::LValue Src)
void callCStructCopyConstructor(
clang::CodeGen::LValue Dst,
clang::CodeGen::LValue Src)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4079
Parameters
¶void callCStructDefaultConstructor(
clang::CodeGen::LValue Dst)
void callCStructDefaultConstructor(
clang::CodeGen::LValue Dst)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4077
Parameters
¶void callCStructDestructor(
clang::CodeGen::LValue Dst)
void callCStructDestructor(
clang::CodeGen::LValue Dst)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4078
Parameters
¶void callCStructMoveAssignmentOperator(
clang::CodeGen::LValue Dst,
clang::CodeGen::LValue Src)
void callCStructMoveAssignmentOperator(
clang::CodeGen::LValue Dst,
clang::CodeGen::LValue Src)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4082
Parameters
¶void callCStructMoveConstructor(
clang::CodeGen::LValue Dst,
clang::CodeGen::LValue Src)
void callCStructMoveConstructor(
clang::CodeGen::LValue Dst,
clang::CodeGen::LValue Src)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4080
Parameters
¶bool checkIfFunctionMustProgress()
bool checkIfFunctionMustProgress()
Description
Returns true if a function must make progress, which means the mustprogress attribute can be added.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:567
¶bool checkIfLoopMustProgress(bool HasConstantCond)
bool checkIfLoopMustProgress(bool HasConstantCond)
Description
Returns true if a loop must make progress, which means the mustprogress attribute can be added. \p HasConstantCond indicates whether the branch condition is a known constant.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:586
Parameters
- bool HasConstantCond
¶void checkTargetFeatures(
clang::SourceLocation Loc,
const clang::FunctionDecl* TargetDecl)
void checkTargetFeatures(
clang::SourceLocation Loc,
const clang::FunctionDecl* TargetDecl)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4026
Parameters
- clang::SourceLocation Loc
- const clang::FunctionDecl* TargetDecl
¶void checkTargetFeatures(
const clang::CallExpr* E,
const clang::FunctionDecl* TargetDecl)
void checkTargetFeatures(
const clang::CallExpr* E,
const clang::FunctionDecl* TargetDecl)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4025
Parameters
- const clang::CallExpr* E
- const clang::FunctionDecl* TargetDecl
¶static bool containsBreak(const clang::Stmt* S)
static bool containsBreak(const clang::Stmt* S)
Description
containsBreak - Return true if the statement contains a break out of it. If the statement (recursively) contains a switch or loop with a break inside of it, this is fine.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4523
Parameters
- const clang::Stmt* S
¶clang::CodeGen::RValue convertTempToRValue(
clang::CodeGen::Address addr,
clang::QualType type,
clang::SourceLocation Loc)
clang::CodeGen::RValue convertTempToRValue(
clang::CodeGen::Address addr,
clang::QualType type,
clang::SourceLocation Loc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3778
Parameters
¶llvm::Function* createAtExitStub(
const clang::VarDecl& VD,
llvm::FunctionCallee Dtor,
llvm::Constant* Addr)
llvm::Function* createAtExitStub(
const clang::VarDecl& VD,
llvm::FunctionCallee Dtor,
llvm::Constant* Addr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4430
Parameters
- const clang::VarDecl& VD
- llvm::FunctionCallee Dtor
- llvm::Constant* Addr
¶llvm::BasicBlock* createBasicBlock(
const llvm::Twine& name = "",
llvm::Function* parent = nullptr,
llvm::BasicBlock* before = nullptr)
llvm::BasicBlock* createBasicBlock(
const llvm::Twine& name = "",
llvm::Function* parent = nullptr,
llvm::BasicBlock* before = nullptr)
Description
createBasicBlock - Create an LLVM basic block.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2427
Parameters
- const llvm::Twine& name = ""
- llvm::Function* parent = nullptr
- llvm::BasicBlock* before = nullptr
¶clang::CodeGen::Address createCleanupActiveFlag()
clang::CodeGen::Address createCleanupActiveFlag()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:831
¶llvm::MDNode* createProfileWeights(
uint64_t TrueCount,
uint64_t FalseCount) const
llvm::MDNode* createProfileWeights(
uint64_t TrueCount,
uint64_t FalseCount) const
Description
Calculate branch weights appropriate for PGO data
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1519
Parameters
- uint64_t TrueCount
- uint64_t FalseCount
¶llvm::MDNode* createProfileWeights(
ArrayRef<uint64_t> Weights) const
llvm::MDNode* createProfileWeights(
ArrayRef<uint64_t> Weights) const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1521
Parameters
- ArrayRef<uint64_t> Weights
¶llvm::MDNode* createProfileWeightsForLoop(
const clang::Stmt* Cond,
uint64_t LoopCount) const
llvm::MDNode* createProfileWeightsForLoop(
const clang::Stmt* Cond,
uint64_t LoopCount) const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1522
Parameters
- const clang::Stmt* Cond
- uint64_t LoopCount
¶llvm::Function* createTLSAtExitStub(
const clang::VarDecl& VD,
llvm::FunctionCallee Dtor,
llvm::Constant* Addr,
llvm::FunctionCallee& AtExit)
llvm::Function* createTLSAtExitStub(
const clang::VarDecl& VD,
llvm::FunctionCallee Dtor,
llvm::Constant* Addr,
llvm::FunctionCallee& AtExit)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4433
Parameters
- const clang::VarDecl& VD
- llvm::FunctionCallee Dtor
- llvm::Constant* Addr
- llvm::FunctionCallee& AtExit
¶bool currentFunctionUsesSEHTry() const
bool currentFunctionUsesSEHTry() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2023
¶static bool cxxDestructorCanThrow(
clang::QualType T)
static bool cxxDestructorCanThrow(
clang::QualType T)
Description
Check if \p T is a C++ class that has a destructor that can throw.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2139
Parameters
¶void defaultInitNonTrivialCStructVar(
clang::CodeGen::LValue Dst)
void defaultInitNonTrivialCStructVar(
clang::CodeGen::LValue Dst)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4076
Parameters
¶void deferPlaceholderReplacement(
llvm::Instruction* Old,
llvm::Value* New)
void deferPlaceholderReplacement(
llvm::Instruction* Old,
llvm::Value* New)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4669
Parameters
- llvm::Instruction* Old
- llvm::Value* New
¶static void destroyARCStrongImprecise(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
static void destroyARCStrongImprecise(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4342
Parameters
¶static void destroyARCStrongPrecise(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
static void destroyARCStrongPrecise(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4343
Parameters
¶static void destroyARCWeak(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
static void destroyARCWeak(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4344
Parameters
¶static void destroyCXXObject(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
static void destroyCXXObject(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2911
Parameters
¶static void destroyNonTrivialCStruct(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
static void destroyNonTrivialCStruct(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4346
Parameters
¶void disableDebugInfo()
void disableDebugInfo()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1989
¶void emitARCCopyAssignWeak(
clang::QualType Ty,
clang::CodeGen::Address DstAddr,
clang::CodeGen::Address SrcAddr)
void emitARCCopyAssignWeak(
clang::QualType Ty,
clang::CodeGen::Address DstAddr,
clang::CodeGen::Address SrcAddr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4288
Parameters
- clang::QualType Ty
- clang::CodeGen::Address DstAddr
- clang::CodeGen::Address SrcAddr
¶static void emitARCIntrinsicUse(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
static void emitARCIntrinsicUse(
clang::CodeGen::CodeGenFunction&,
clang::CodeGen::Address,
clang::QualType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4345
Parameters
¶void emitARCMoveAssignWeak(
clang::QualType Ty,
clang::CodeGen::Address DstAddr,
clang::CodeGen::Address SrcAddr)
void emitARCMoveAssignWeak(
clang::QualType Ty,
clang::CodeGen::Address DstAddr,
clang::CodeGen::Address SrcAddr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4289
Parameters
- clang::QualType Ty
- clang::CodeGen::Address DstAddr
- clang::CodeGen::Address SrcAddr
¶clang::CodeGen::Address emitAddrOfImagComponent(
clang::CodeGen::Address complex,
clang::QualType complexType)
clang::CodeGen::Address emitAddrOfImagComponent(
clang::CodeGen::Address complex,
clang::QualType complexType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4412
Parameters
- clang::CodeGen::Address complex
- clang::QualType complexType
¶clang::CodeGen::Address emitAddrOfRealComponent(
clang::CodeGen::Address complex,
clang::QualType complexType)
clang::CodeGen::Address emitAddrOfRealComponent(
clang::CodeGen::Address complex,
clang::QualType complexType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4411
Parameters
- clang::CodeGen::Address complex
- clang::QualType complexType
¶void emitAlignmentAssumption(
llvm::Value* PtrValue,
clang::QualType Ty,
clang::SourceLocation Loc,
clang::SourceLocation AssumptionLoc,
llvm::Value* Alignment,
llvm::Value* OffsetValue = nullptr)
void emitAlignmentAssumption(
llvm::Value* PtrValue,
clang::QualType Ty,
clang::SourceLocation Loc,
clang::SourceLocation AssumptionLoc,
llvm::Value* Alignment,
llvm::Value* OffsetValue = nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3192
Parameters
- llvm::Value* PtrValue
- clang::QualType Ty
- clang::SourceLocation Loc
- clang::SourceLocation AssumptionLoc
- llvm::Value* Alignment
- llvm::Value* OffsetValue = nullptr
¶void emitAlignmentAssumption(
llvm::Value* PtrValue,
const clang::Expr* E,
clang::SourceLocation AssumptionLoc,
llvm::Value* Alignment,
llvm::Value* OffsetValue = nullptr)
void emitAlignmentAssumption(
llvm::Value* PtrValue,
const clang::Expr* E,
clang::SourceLocation AssumptionLoc,
llvm::Value* Alignment,
llvm::Value* OffsetValue = nullptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3197
Parameters
- llvm::Value* PtrValue
- const clang::Expr* E
- clang::SourceLocation AssumptionLoc
- llvm::Value* Alignment
- llvm::Value* OffsetValue = nullptr
¶void emitAlignmentAssumptionCheck(
llvm::Value* Ptr,
clang::QualType Ty,
clang::SourceLocation Loc,
clang::SourceLocation AssumptionLoc,
llvm::Value* Alignment,
llvm::Value* OffsetValue,
llvm::Value* TheCheck,
llvm::Instruction* Assumption)
void emitAlignmentAssumptionCheck(
llvm::Value* Ptr,
clang::QualType Ty,
clang::SourceLocation Loc,
clang::SourceLocation AssumptionLoc,
llvm::Value* Alignment,
llvm::Value* OffsetValue,
llvm::Value* TheCheck,
llvm::Instruction* Assumption)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3184
Parameters
- llvm::Value* Ptr
- clang::QualType Ty
- clang::SourceLocation Loc
- clang::SourceLocation AssumptionLoc
- llvm::Value* Alignment
- llvm::Value* OffsetValue
- llvm::Value* TheCheck
- llvm::Instruction* Assumption
¶void emitArrayDestroy(
llvm::Value* begin,
llvm::Value* end,
clang::QualType elementType,
clang::CharUnits elementAlign,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool checkZeroLength,
bool useEHCleanup)
void emitArrayDestroy(
llvm::Value* begin,
llvm::Value* end,
clang::QualType elementType,
clang::CharUnits elementAlign,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool checkZeroLength,
bool useEHCleanup)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2067
Parameters
- llvm::Value* begin
- llvm::Value* end
- clang::QualType elementType
- clang::CharUnits elementAlign
- clang::CodeGen::CodeGenFunction::Destroyer* destroyer
- bool checkZeroLength
- bool useEHCleanup
¶llvm::Value* emitArrayLength(
const clang::ArrayType* arrayType,
clang::QualType& baseType,
clang::CodeGen::Address& addr)
llvm::Value* emitArrayLength(
const clang::ArrayType* arrayType,
clang::QualType& baseType,
clang::CodeGen::Address& addr)
Description
emitArrayLength - Compute the length of an array, even if it's a VLA, and drill down to the base element type.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2770
Parameters
- const clang::ArrayType* arrayType
- clang::QualType& baseType
- clang::CodeGen::Address& addr
¶void emitAutoVarTypeCleanup(
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission,
QualType::DestructionKind dtorKind)
void emitAutoVarTypeCleanup(
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission,
QualType::DestructionKind dtorKind)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3124
Parameters
- const clang::CodeGen::CodeGenFunction:: AutoVarEmission& emission
- QualType::DestructionKind dtorKind
¶clang::CodeGen::Address emitBlockByrefAddress(
clang::CodeGen::Address baseAddr,
const clang::CodeGen::BlockByrefInfo& info,
bool followForward,
const llvm::Twine& name)
clang::CodeGen::Address emitBlockByrefAddress(
clang::CodeGen::Address baseAddr,
const clang::CodeGen::BlockByrefInfo& info,
bool followForward,
const llvm::Twine& name)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2185
Parameters
- clang::CodeGen::Address baseAddr
- const clang::CodeGen::BlockByrefInfo& info
- bool followForward
- const llvm::Twine& name
¶clang::CodeGen::Address emitBlockByrefAddress(
clang::CodeGen::Address baseAddr,
const clang::VarDecl* V,
bool followForward = true)
clang::CodeGen::Address emitBlockByrefAddress(
clang::CodeGen::Address baseAddr,
const clang::VarDecl* V,
bool followForward = true)
Description
BuildBlockByrefAddress - Computes the location of the data in a variable which is declared as __block.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2183
Parameters
- clang::CodeGen::Address baseAddr
- const clang::VarDecl* V
- bool followForward = true
¶llvm::Value* emitBoolVecConversion(
llvm::Value* SrcVec,
unsigned int NumElementsDst,
const llvm::Twine& Name = "")
llvm::Value* emitBoolVecConversion(
llvm::Value* SrcVec,
unsigned int NumElementsDst,
const llvm::Twine& Name = "")
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4661
Parameters
- llvm::Value* SrcVec
- unsigned int NumElementsDst
- const llvm::Twine& Name = ""
¶clang::CodeGen::RValue emitBuiltinOSLogFormat(
const clang::CallExpr& E)
clang::CodeGen::RValue emitBuiltinOSLogFormat(
const clang::CallExpr& E)
Description
Emit IR for __builtin_os_log_format.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4130
Parameters
- const clang::CallExpr& E
¶llvm::Value* emitBuiltinObjectSize(
const clang::Expr* E,
unsigned int Type,
llvm::IntegerType* ResType,
llvm::Value* EmittedE,
bool IsDynamic)
llvm::Value* emitBuiltinObjectSize(
const clang::Expr* E,
unsigned int Type,
llvm::IntegerType* ResType,
llvm::Value* EmittedE,
bool IsDynamic)
Description
Emits the size of E, as required by __builtin_object_size. This function is aware of pass_object_size parameters, and will act accordingly if E is a parameter with the pass_object_size attribute.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4716
Parameters
- const clang::Expr* E
- unsigned int Type
- llvm::IntegerType* ResType
- llvm::Value* EmittedE
- bool IsDynamic
¶void emitByrefStructureInit(
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission)
void emitByrefStructureInit(
const clang::CodeGen::CodeGenFunction::
AutoVarEmission& emission)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2154
Parameters
- const clang::CodeGen::CodeGenFunction:: AutoVarEmission& emission
¶llvm::Value* emitCondLikelihoodViaExpectIntrinsic(
llvm::Value* Cond,
Stmt::Likelihood LH)
llvm::Value* emitCondLikelihoodViaExpectIntrinsic(
llvm::Value* Cond,
Stmt::Likelihood LH)
Description
Lower the Likelihood knowledge about the \p Cond via llvm.expect intrin.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1513
Parameters
- llvm::Value* Cond
- Stmt::Likelihood LH
¶void emitDestroy(
clang::CodeGen::Address addr,
clang::QualType type,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool useEHCleanupForArray)
void emitDestroy(
clang::CodeGen::Address addr,
clang::QualType type,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool useEHCleanupForArray)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2061
Parameters
- clang::CodeGen::Address addr
- clang::QualType type
- clang::CodeGen::CodeGenFunction::Destroyer* destroyer
- bool useEHCleanupForArray
¶void emitImplicitAssignmentOperatorBody(
clang::CodeGen::FunctionArgList& Args)
void emitImplicitAssignmentOperatorBody(
clang::CodeGen::FunctionArgList& Args)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2216
Parameters
¶void emitOMPSimpleStore(
clang::CodeGen::LValue LVal,
clang::CodeGen::RValue RVal,
clang::QualType RValTy,
clang::SourceLocation Loc)
void emitOMPSimpleStore(
clang::CodeGen::LValue LVal,
clang::CodeGen::RValue RVal,
clang::QualType RValTy,
clang::SourceLocation Loc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3348
Parameters
- clang::CodeGen::LValue LVal
- clang::CodeGen::RValue RVal
- clang::QualType RValTy
- clang::SourceLocation Loc
¶clang::CodeGen::RValue emitRotate(
const clang::CallExpr* E,
bool IsRotateRight)
clang::CodeGen::RValue emitRotate(
const clang::CallExpr* E,
bool IsRotateRight)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4127
Parameters
- const clang::CallExpr* E
- bool IsRotateRight
¶llvm::Value* emitScalarConstant(
const clang::CodeGen::CodeGenFunction::
ConstantEmission& Constant,
clang::Expr* E)
llvm::Value* emitScalarConstant(
const clang::CodeGen::CodeGenFunction::
ConstantEmission& Constant,
clang::Expr* E)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3967
Parameters
- const clang::CodeGen::CodeGenFunction:: ConstantEmission& Constant
- clang::Expr* E
¶void emitZeroOrPatternForAutoVarInit(
clang::QualType type,
const clang::VarDecl& D,
clang::CodeGen::Address Loc)
void emitZeroOrPatternForAutoVarInit(
clang::QualType type,
const clang::VarDecl& D,
clang::CodeGen::Address Loc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4721
Parameters
- clang::QualType type
- const clang::VarDecl& D
- clang::CodeGen::Address Loc
¶void enableDebugInfo()
void enableDebugInfo()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1990
¶void enterByrefCleanup(
clang::CodeGen::CleanupKind Kind,
clang::CodeGen::Address Addr,
clang::CodeGen::BlockFieldFlags Flags,
bool LoadBlockVarAddr,
bool CanThrow)
void enterByrefCleanup(
clang::CodeGen::CleanupKind Kind,
clang::CodeGen::Address Addr,
clang::CodeGen::BlockFieldFlags Flags,
bool LoadBlockVarAddr,
bool CanThrow)
Description
Enter a cleanup to destroy a __block variable. Note that this cleanup should be a no-op if the variable hasn't left the stack yet; if a cleanup is required for the variable itself, that needs to be done externally.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2172
Parameters
- clang::CodeGen::CleanupKind Kind
- Cleanup kind.
- clang::CodeGen::Address Addr
- When \p LoadBlockVarAddr is false, the address of the __block structure that will be passed to _Block_object_dispose. When\p LoadBlockVarAddr is true, the address of the field of the block structure that holds the address of the __block structure.
- clang::CodeGen::BlockFieldFlags Flags
- The flag that will be passed to _Block_object_dispose.
- bool LoadBlockVarAddr
- Indicates whether we need to emit a load from\p Addr to get the address of the __block structure.
- bool CanThrow
¶llvm::Value* evaluateOrEmitBuiltinObjectSize(
const clang::Expr* E,
unsigned int Type,
llvm::IntegerType* ResType,
llvm::Value* EmittedE,
bool IsDynamic)
llvm::Value* evaluateOrEmitBuiltinObjectSize(
const clang::Expr* E,
unsigned int Type,
llvm::IntegerType* ResType,
llvm::Value* EmittedE,
bool IsDynamic)
Description
Attempts to statically evaluate the object size of E. If that fails, emits code to figure the size of E out for us. This is pass_object_size aware. If EmittedExpr is non-null, this will use that instead of re-emitting E.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4708
Parameters
- const clang::Expr* E
- unsigned int Type
- llvm::IntegerType* ResType
- llvm::Value* EmittedE
- bool IsDynamic
¶llvm::Function*
generateBuiltinOSLogHelperFunction(
const analyze_os_log::OSLogBufferLayout&
Layout,
clang::CharUnits BufferAlignment)
llvm::Function*
generateBuiltinOSLogHelperFunction(
const analyze_os_log::OSLogBufferLayout&
Layout,
clang::CharUnits BufferAlignment)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4137
Parameters
- const analyze_os_log::OSLogBufferLayout& Layout
- clang::CharUnits BufferAlignment
¶llvm::Function* generateDestroyHelper(
clang::CodeGen::Address addr,
clang::QualType type,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool useEHCleanupForArray,
const clang::VarDecl* VD)
llvm::Function* generateDestroyHelper(
clang::CodeGen::Address addr,
clang::QualType type,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool useEHCleanupForArray,
const clang::VarDecl* VD)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2063
Parameters
- clang::CodeGen::Address addr
- clang::QualType type
- clang::CodeGen::CodeGenFunction::Destroyer* destroyer
- bool useEHCleanupForArray
- const clang::VarDecl* VD
¶void generateObjCGetterBody(
const clang::ObjCImplementationDecl*
classImpl,
const clang::ObjCPropertyImplDecl* propImpl,
const clang::ObjCMethodDecl* GetterMothodDecl,
llvm::Constant* AtomicHelperFn)
void generateObjCGetterBody(
const clang::ObjCImplementationDecl*
classImpl,
const clang::ObjCPropertyImplDecl* propImpl,
const clang::ObjCMethodDecl* GetterMothodDecl,
llvm::Constant* AtomicHelperFn)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2106
Parameters
- const clang::ObjCImplementationDecl* classImpl
- const clang::ObjCPropertyImplDecl* propImpl
- const clang::ObjCMethodDecl* GetterMothodDecl
- llvm::Constant* AtomicHelperFn
¶void generateObjCSetterBody(
const clang::ObjCImplementationDecl*
classImpl,
const clang::ObjCPropertyImplDecl* propImpl,
llvm::Constant* AtomicHelperFn)
void generateObjCSetterBody(
const clang::ObjCImplementationDecl*
classImpl,
const clang::ObjCPropertyImplDecl* propImpl,
llvm::Constant* AtomicHelperFn)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2118
Parameters
- const clang::ObjCImplementationDecl* classImpl
- const clang::ObjCPropertyImplDecl* propImpl
- llvm::Constant* AtomicHelperFn
¶void generateThunk(
llvm::Function* Fn,
const clang::CodeGen::CGFunctionInfo& FnInfo,
clang::GlobalDecl GD,
const clang::ThunkInfo& Thunk,
bool IsUnprototyped)
void generateThunk(
llvm::Function* Fn,
const clang::CodeGen::CGFunctionInfo& FnInfo,
clang::GlobalDecl GD,
const clang::ThunkInfo& Thunk,
bool IsUnprototyped)
Description
Generate a thunk for the given method.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2253
Parameters
- llvm::Function* Fn
- const clang::CodeGen::CGFunctionInfo& FnInfo
- clang::GlobalDecl GD
- const clang::ThunkInfo& Thunk
- bool IsUnprototyped
¶clang::CodeGen::CleanupKind getARCCleanupKind()
clang::CodeGen::CleanupKind getARCCleanupKind()
Description
Retrieves the default cleanup kind for an ARC cleanup. Except under -fobjc-arc-eh, ARC cleanups are normal-only.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4277
¶static unsigned int getAccessedFieldNo(
unsigned int Idx,
const llvm::Constant* Elts)
static unsigned int getAccessedFieldNo(
unsigned int Idx,
const llvm::Constant* Elts)
Description
getAccessedFieldNo - Given an encoded value and a result number, return the input field number being accessed.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2737
Parameters
- unsigned int Idx
- const llvm::Constant* Elts
¶llvm::Value* getArrayInitIndex()
llvm::Value* getArrayInitIndex()
Description
Get the index of the current ArrayInitLoopExpr, if any.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2733
¶const clang::CodeGen::BlockByrefInfo&
getBlockByrefInfo(const clang::VarDecl* var)
const clang::CodeGen::BlockByrefInfo&
getBlockByrefInfo(const clang::VarDecl* var)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2190
Parameters
- const clang::VarDecl* var
¶SmallVector<llvm::OperandBundleDef, 1>
getBundlesForFunclet(llvm::Value* Callee)
SmallVector<llvm::OperandBundleDef, 1>
getBundlesForFunclet(llvm::Value* Callee)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4040
Parameters
- llvm::Value* Callee
¶clang::CodeGen::CleanupKind getCleanupKind(
QualType::DestructionKind kind)
clang::CodeGen::CleanupKind getCleanupKind(
QualType::DestructionKind kind)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2091
Parameters
- QualType::DestructionKind kind
¶clang::ASTContext& getContext() const
clang::ASTContext& getContext() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1983
¶uint64_t getCurrentProfileCount()
uint64_t getCurrentProfileCount()
Description
Get the profiler's current count. This is generally the count for the most recently incremented counter.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1547
¶clang::CodeGen::CGDebugInfo* getDebugInfo()
clang::CodeGen::CGDebugInfo* getDebugInfo()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1984
¶unsigned int getDebugInfoFIndex(
const clang::RecordDecl* Rec,
unsigned int FieldIndex)
unsigned int getDebugInfoFIndex(
const clang::RecordDecl* Rec,
unsigned int FieldIndex)
Description
Get the record field index as represented in debug info.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3019
Parameters
- const clang::RecordDecl* Rec
- unsigned int FieldIndex
¶clang::CodeGen::CodeGenFunction::Destroyer*
getDestroyer(
QualType::DestructionKind destructionKind)
clang::CodeGen::CodeGenFunction::Destroyer*
getDestroyer(
QualType::DestructionKind destructionKind)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2072
Parameters
- QualType::DestructionKind destructionKind
¶llvm::BasicBlock* getEHDispatchBlock(
EHScopeStack::stable_iterator scope)
llvm::BasicBlock* getEHDispatchBlock(
EHScopeStack::stable_iterator scope)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1179
Parameters
¶llvm::BasicBlock* getEHResumeBlock(bool isCleanup)
llvm::BasicBlock* getEHResumeBlock(bool isCleanup)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1178
Parameters
- bool isCleanup
¶clang::CodeGen::Address getEHSelectorSlot()
clang::CodeGen::Address getEHSelectorSlot()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2001
¶llvm::Type* getEltType(
const clang::SVETypeFlags& TypeFlags)
llvm::Type* getEltType(
const clang::SVETypeFlags& TypeFlags)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4199
Parameters
- const clang::SVETypeFlags& TypeFlags
¶static clang::CodeGen::TypeEvaluationKind
getEvaluationKind(clang::QualType T)
static clang::CodeGen::TypeEvaluationKind
getEvaluationKind(clang::QualType T)
Description
getEvaluationKind - Return the TypeEvaluationKind of QualType \c T.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2416
Parameters
¶llvm::Value* getExceptionFromSlot()
llvm::Value* getExceptionFromSlot()
Description
Returns the contents of the function's exception object and selector slots.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2005
¶clang::CodeGen::Address getExceptionSlot()
clang::CodeGen::Address getExceptionSlot()
Description
Returns a pointer to the function's exception object and selector slot, which is assigned in every landing pad.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2000
¶llvm::BasicBlock* getFuncletEHDispatchBlock(
EHScopeStack::stable_iterator scope)
llvm::BasicBlock* getFuncletEHDispatchBlock(
EHScopeStack::stable_iterator scope)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1181
Parameters
¶llvm::BasicBlock* getInvokeDest()
llvm::BasicBlock* getInvokeDest()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2018
¶llvm::BasicBlock* getInvokeDestImpl()
llvm::BasicBlock* getInvokeDestImpl()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:681
¶clang::CodeGen::CodeGenFunction::JumpDest
getJumpDestForLabel(const clang::LabelDecl* S)
clang::CodeGen::CodeGenFunction::JumpDest
getJumpDestForLabel(const clang::LabelDecl* S)
Description
getBasicBlockForLabel - Return the LLVM basicblock that the specified label maps to.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2435
Parameters
- const clang::LabelDecl* S
¶clang::CodeGen::CodeGenFunction::JumpDest
getJumpDestInCurrentScope(
llvm::BasicBlock* Target)
clang::CodeGen::CodeGenFunction::JumpDest
getJumpDestInCurrentScope(
llvm::BasicBlock* Target)
Description
The given basic block lies in the current EH scope, but may be a target of a potentially scope-crossing jump; get a stable handle to which we can perform this jump later.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1150
Parameters
- llvm::BasicBlock* Target
¶clang::CodeGen::CodeGenFunction::JumpDest
getJumpDestInCurrentScope(
llvm::StringRef Name = llvm::StringRef())
clang::CodeGen::CodeGenFunction::JumpDest
getJumpDestInCurrentScope(
llvm::StringRef Name = llvm::StringRef())
Description
The given basic block lies in the current EH scope, but may be a target of a potentially scope-crossing jump; get a stable handle to which we can perform this jump later.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1159
Parameters
- llvm::StringRef Name = llvm::StringRef()
¶llvm::LLVMContext& getLLVMContext()
llvm::LLVMContext& getLLVMContext()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2026
¶const clang::LangOptions& getLangOpts() const
const clang::LangOptions& getLangOpts() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1996
¶static std::string
getNonTrivialCopyConstructorStr(
clang::QualType QT,
clang::CharUnits Alignment,
bool IsVolatile,
clang::ASTContext& Ctx)
static std::string
getNonTrivialCopyConstructorStr(
clang::QualType QT,
clang::CharUnits Alignment,
bool IsVolatile,
clang::ASTContext& Ctx)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4063
Parameters
- clang::QualType QT
- clang::CharUnits Alignment
- bool IsVolatile
- clang::ASTContext& Ctx
¶static std::string getNonTrivialDestructorStr(
clang::QualType QT,
clang::CharUnits Alignment,
bool IsVolatile,
clang::ASTContext& Ctx)
static std::string getNonTrivialDestructorStr(
clang::QualType QT,
clang::CharUnits Alignment,
bool IsVolatile,
clang::ASTContext& Ctx)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4069
Parameters
- clang::QualType QT
- clang::CharUnits Alignment
- bool IsVolatile
- clang::ASTContext& Ctx
¶clang::CodeGen::Address getNormalCleanupDestSlot()
clang::CodeGen::Address getNormalCleanupDestSlot()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2008
¶clang::CodeGen::CodeGenFunction::JumpDest
getOMPCancelDestination(
clang::OpenMPDirectiveKind Kind)
clang::CodeGen::CodeGenFunction::JumpDest
getOMPCancelDestination(
clang::OpenMPDirectiveKind Kind)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3648
Parameters
- clang::OpenMPDirectiveKind Kind
¶clang::CodeGen::LValue
getOrCreateOpaqueLValueMapping(
const clang::OpaqueValueExpr* e)
clang::CodeGen::LValue
getOrCreateOpaqueLValueMapping(
const clang::OpaqueValueExpr* e)
Description
Given an opaque value expression, return its LValue mapping if it exists, otherwise create one.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2726
Parameters
- const clang::OpaqueValueExpr* e
¶clang::CodeGen::RValue
getOrCreateOpaqueRValueMapping(
const clang::OpaqueValueExpr* e)
clang::CodeGen::RValue
getOrCreateOpaqueRValueMapping(
const clang::OpaqueValueExpr* e)
Description
Given an opaque value expression, return its RValue mapping if it exists, otherwise create one.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2730
Parameters
- const clang::OpaqueValueExpr* e
¶AggValueSlot::Overlap_t getOverlapForBaseInit(
const clang::CXXRecordDecl* RD,
const clang::CXXRecordDecl* BaseRD,
bool IsVirtual)
AggValueSlot::Overlap_t getOverlapForBaseInit(
const clang::CXXRecordDecl* RD,
const clang::CXXRecordDecl* BaseRD,
bool IsVirtual)
Description
Determine whether a base class initialization may overlap some other object.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2690
Parameters
- const clang::CXXRecordDecl* RD
- const clang::CXXRecordDecl* BaseRD
- bool IsVirtual
¶AggValueSlot::Overlap_t getOverlapForFieldInit(
const clang::FieldDecl* FD)
AggValueSlot::Overlap_t getOverlapForFieldInit(
const clang::FieldDecl* FD)
Description
Determine whether a field initialization may overlap some other object.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2686
Parameters
- const clang::FieldDecl* FD
¶AggValueSlot::Overlap_t getOverlapForReturnValue()
AggValueSlot::Overlap_t getOverlapForReturnValue()
Description
Determine whether a return value slot may overlap some other object.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2678
¶llvm::Instruction* getPostAllocaInsertPoint()
llvm::Instruction* getPostAllocaInsertPoint()
Description
Return PostAllocaInsertPt. If it is not yet created, then insert it immediately after AllocaInsertPt.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:391
¶uint64_t getProfileCount(const clang::Stmt* S)
uint64_t getProfileCount(const clang::Stmt* S)
Description
Get the profiler's count for the given statement.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1536
Parameters
- const clang::Stmt* S
¶llvm::MDNode* getRangeForLoadFromType(
clang::QualType Ty)
llvm::MDNode* getRangeForLoadFromType(
clang::QualType Ty)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4666
Parameters
¶SmallVector<llvm::Type*, 2> getSVEOverloadTypes(
const clang::SVETypeFlags& TypeFlags,
llvm::Type* ReturnType,
ArrayRef<llvm::Value*> Ops)
SmallVector<llvm::Type*, 2> getSVEOverloadTypes(
const clang::SVETypeFlags& TypeFlags,
llvm::Type* ReturnType,
ArrayRef<llvm::Value*> Ops)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4197
Parameters
- const clang::SVETypeFlags& TypeFlags
- llvm::Type* ReturnType
- ArrayRef<llvm::Value*> Ops
¶llvm::ScalableVectorType* getSVEPredType(
const clang::SVETypeFlags& TypeFlags)
llvm::ScalableVectorType* getSVEPredType(
const clang::SVETypeFlags& TypeFlags)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4201
Parameters
- const clang::SVETypeFlags& TypeFlags
¶llvm::ScalableVectorType* getSVEType(
const clang::SVETypeFlags& TypeFlags)
llvm::ScalableVectorType* getSVEType(
const clang::SVETypeFlags& TypeFlags)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4200
Parameters
- const clang::SVETypeFlags& TypeFlags
¶llvm::Value* getSelectorFromSlot()
llvm::Value* getSelectorFromSlot()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2006
¶const clang::TargetInfo& getTarget() const
const clang::TargetInfo& getTarget() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2025
¶const clang::CodeGen::TargetCodeGenInfo&
getTargetHooks() const
const clang::CodeGen::TargetCodeGenInfo&
getTargetHooks() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2027
¶llvm::BasicBlock* getTerminateFunclet()
llvm::BasicBlock* getTerminateFunclet()
Description
getTerminateLandingPad - Return a cleanup funclet that just calls terminate.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2395
¶llvm::BasicBlock* getTerminateHandler()
llvm::BasicBlock* getTerminateHandler()
Description
getTerminateHandler - Return a handler (not a landing pad, just a catch handler) that just calls terminate. This is used when a terminate scope encloses a try.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2400
¶llvm::BasicBlock* getTerminateLandingPad()
llvm::BasicBlock* getTerminateLandingPad()
Description
getTerminateLandingPad - Return a landing pad that just calls terminate.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2391
¶llvm::Value* getTypeSize(clang::QualType Ty)
llvm::Value* getTypeSize(clang::QualType Ty)
Description
Returns calculated size of the specified type.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3339
Parameters
¶clang::CodeGen::CodeGenTypes& getTypes() const
clang::CodeGen::CodeGenTypes& getTypes() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1982
¶llvm::BasicBlock* getUnreachableBlock()
llvm::BasicBlock* getUnreachableBlock()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2010
¶clang::CodeGen::CodeGenFunction::VlaSizePair
getVLAElements1D(
const clang::VariableArrayType* vla)
clang::CodeGen::CodeGenFunction::VlaSizePair
getVLAElements1D(
const clang::VariableArrayType* vla)
Description
Return the number of elements for a single dimension for the given array type.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2789
Parameters
- const clang::VariableArrayType* vla
¶clang::CodeGen::CodeGenFunction::VlaSizePair
getVLAElements1D(clang::QualType vla)
clang::CodeGen::CodeGenFunction::VlaSizePair
getVLAElements1D(clang::QualType vla)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2790
Parameters
- clang::QualType vla
¶clang::CodeGen::CodeGenFunction::VlaSizePair
getVLASize(clang::QualType vla)
clang::CodeGen::CodeGenFunction::VlaSizePair
getVLASize(clang::QualType vla)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2797
Parameters
- clang::QualType vla
¶clang::CodeGen::CodeGenFunction::VlaSizePair
getVLASize(const clang::VariableArrayType* vla)
clang::CodeGen::CodeGenFunction::VlaSizePair
getVLASize(const clang::VariableArrayType* vla)
Description
Returns an LLVM value that corresponds to the size, in non-variably-sized elements, of a variable length array type, plus that largest non-variably-sized element type. Assumes that the type has already been emitted with EmitVariablyModifiedType.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2796
Parameters
- const clang::VariableArrayType* vla
¶void getVTablePointers(
clang::BaseSubobject Base,
const clang::CXXRecordDecl* NearestVBase,
clang::CharUnits OffsetFromNearestVBase,
bool BaseIsNonVirtualPrimaryBase,
const clang::CXXRecordDecl* VTableClass,
clang::CodeGen::CodeGenFunction::
VisitedVirtualBasesSetTy& VBases,
clang::CodeGen::CodeGenFunction::VPtrsVector&
vptrs)
void getVTablePointers(
clang::BaseSubobject Base,
const clang::CXXRecordDecl* NearestVBase,
clang::CharUnits OffsetFromNearestVBase,
bool BaseIsNonVirtualPrimaryBase,
const clang::CXXRecordDecl* VTableClass,
clang::CodeGen::CodeGenFunction::
VisitedVirtualBasesSetTy& VBases,
clang::CodeGen::CodeGenFunction::VPtrsVector&
vptrs)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2282
Parameters
- clang::BaseSubobject Base
- const clang::CXXRecordDecl* NearestVBase
- clang::CharUnits OffsetFromNearestVBase
- bool BaseIsNonVirtualPrimaryBase
- const clang::CXXRecordDecl* VTableClass
- clang::CodeGen::CodeGenFunction:: VisitedVirtualBasesSetTy& VBases
- clang::CodeGen::CodeGenFunction::VPtrsVector& vptrs
¶clang::CodeGen::CodeGenFunction::VPtrsVector
getVTablePointers(
const clang::CXXRecordDecl* VTableClass)
clang::CodeGen::CodeGenFunction::VPtrsVector
getVTablePointers(
const clang::CXXRecordDecl* VTableClass)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2280
Parameters
- const clang::CXXRecordDecl* VTableClass
¶clang::QualType getVarArgType(
const clang::Expr* Arg)
clang::QualType getVarArgType(
const clang::Expr* Arg)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4799
Parameters
- const clang::Expr* Arg
¶static bool hasAggregateEvaluationKind(
clang::QualType T)
static bool hasAggregateEvaluationKind(
clang::QualType T)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2422
Parameters
¶bool hasLabelBeenSeenInCurrentScope() const
bool hasLabelBeenSeenInCurrentScope() const
Description
Return true if a label was seen in the current scope.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:367
¶static bool hasScalarEvaluationKind(
clang::QualType T)
static bool hasScalarEvaluationKind(
clang::QualType T)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2418
Parameters
¶bool hasVolatileMember(clang::QualType T)
bool hasVolatileMember(clang::QualType T)
Description
hasVolatileMember - returns true if aggregate type has a volatile member.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2669
Parameters
¶void incrementProfileCounter(
const clang::Stmt* S,
llvm::Value* StepV = nullptr)
void incrementProfileCounter(
const clang::Stmt* S,
llvm::Value* StepV = nullptr)
Description
Increment the profiler's counter for the given statement by \p StepV. If \p StepV is null, the default increment is 1.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1528
Parameters
- const clang::Stmt* S
- llvm::Value* StepV = nullptr
¶void initFullExprCleanup()
void initFullExprCleanup()
Description
Set up the last cleanup that was pushed as a conditional full-expression cleanup.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:826
¶void initFullExprCleanupWithFlag(
clang::CodeGen::Address ActiveFlag)
void initFullExprCleanupWithFlag(
clang::CodeGen::Address ActiveFlag)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:830
Parameters
- clang::CodeGen::Address ActiveFlag
¶bool isCleanupPadScope() const
bool isCleanupPadScope() const
Description
Returns true while emitting a cleanuppad.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:762
¶bool isCoroutine() const
bool isCoroutine() const
Declared at: clang/lib/CodeGen/CodeGenFunction.h:340
¶bool isInConditionalBranch() const
bool isInConditionalBranch() const
Description
isInConditionalBranch - Return true if we're currently emitting one branch or the other of a conditional expression.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1212
¶static bool isInstrumentedCondition(
const clang::Expr* C)
static bool isInstrumentedCondition(
const clang::Expr* C)
Description
isInstrumentedCondition - Determine whether the given condition is an instrumentable condition (i.e. no "&&" or "||").
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4543
Parameters
- const clang::Expr* C
¶static bool isNullPointerAllowed(
clang::CodeGen::CodeGenFunction::TypeCheckKind
TCK)
static bool isNullPointerAllowed(
clang::CodeGen::CodeGenFunction::TypeCheckKind
TCK)
Description
Determine whether the pointer type check \p TCK permits null pointers.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2987
Parameters
- clang::CodeGen::CodeGenFunction::TypeCheckKind TCK
¶bool isObviouslyBranchWithoutCleanups(
clang::CodeGen::CodeGenFunction::JumpDest
Dest) const
bool isObviouslyBranchWithoutCleanups(
clang::CodeGen::CodeGenFunction::JumpDest
Dest) const
Description
isObviouslyBranchWithoutCleanups - Return true if a branch to the specified destination obviously has no cleanups to run. 'false' is always a conservatively correct answer for this method.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1171
Parameters
¶bool isSEHTryScope() const
bool isSEHTryScope() const
Description
Returns true inside SEH __try blocks.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:759
¶bool isTrivialInitializer(const clang::Expr* Init)
bool isTrivialInitializer(const clang::Expr* Init)
Description
Determine whether the given initializer is trivial in the sense that it requires no code to be generated.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3044
Parameters
- const clang::Expr* Init
¶static bool isVptrCheckRequired(
clang::CodeGen::CodeGenFunction::TypeCheckKind
TCK,
clang::QualType Ty)
static bool isVptrCheckRequired(
clang::CodeGen::CodeGenFunction::TypeCheckKind
TCK,
clang::QualType Ty)
Description
Determine whether the pointer type check \p TCK requires a vptr check.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2990
Parameters
- clang::CodeGen::CodeGenFunction::TypeCheckKind TCK
- clang::QualType Ty
¶void markAsIgnoreThreadCheckingAtRuntime(
llvm::Function* Fn)
void markAsIgnoreThreadCheckingAtRuntime(
llvm::Function* Fn)
Description
Annotate the function with an attribute that disables TSan checking at runtime.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2199
Parameters
- llvm::Function* Fn
¶static bool mightAddDeclToScope(
const clang::Stmt* S)
static bool mightAddDeclToScope(
const clang::Stmt* S)
Description
Determine if the given statement might introduce a declaration into the current scope, by being a (possibly-labelled) DeclStmt.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4527
Parameters
- const clang::Stmt* S
¶bool needsEHCleanup(
QualType::DestructionKind kind)
bool needsEHCleanup(
QualType::DestructionKind kind)
Description
Determines whether an EH cleanup is required to destroy a type with the given destruction kind.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2076
Parameters
- QualType::DestructionKind kind
¶void popCatchScope()
void popCatchScope()
Description
popCatchScope - Pops the catch scope at the top of the EHScope stack, emitting any required code (other than the catch handlers themselves).
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1176
¶void processInReduction(
const clang::OMPExecutableDirective& S,
clang::CodeGen::OMPTaskDataTy& Data,
clang::CodeGen::CodeGenFunction& CGF,
const clang::CapturedStmt* CS,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& Scope)
void processInReduction(
const clang::OMPExecutableDirective& S,
clang::CodeGen::OMPTaskDataTy& Data,
clang::CodeGen::CodeGenFunction& CGF,
const clang::CapturedStmt* CS,
clang::CodeGen::CodeGenFunction::
OMPPrivateScope& Scope)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3498
Parameters
- const clang::OMPExecutableDirective& S
- clang::CodeGen::OMPTaskDataTy& Data
- clang::CodeGen::CodeGenFunction& CGF
- const clang::CapturedStmt* CS
- clang::CodeGen::CodeGenFunction::OMPPrivateScope& Scope
¶clang::CodeGen::CodeGenFunction::
PeepholeProtection
protectFromPeepholes(
clang::CodeGen::RValue rvalue)
clang::CodeGen::CodeGenFunction::
PeepholeProtection
protectFromPeepholes(
clang::CodeGen::RValue rvalue)
Description
protectFromPeepholes - Protect a value that we're intending to store to the side, but which will probably be used later, from aggressive peepholing optimizations that might delete it. Pass the result to unprotectFromPeepholes to declare that protection is no longer required. There's no particular reason why this shouldn't apply to l-values, it's just that no existing peepholes work on pointers.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3181
Parameters
- clang::CodeGen::RValue rvalue
¶void pushCallObjectDeleteCleanup(
const clang::FunctionDecl* OperatorDelete,
llvm::Value* CompletePtr,
clang::QualType ElementType)
void pushCallObjectDeleteCleanup(
const clang::FunctionDecl* OperatorDelete,
llvm::Value* CompletePtr,
clang::QualType ElementType)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2057
Parameters
- const clang::FunctionDecl* OperatorDelete
- llvm::Value* CompletePtr
- clang::QualType ElementType
¶template <class T, class... As>
void pushCleanupAfterFullExpr(
clang::CodeGen::CleanupKind Kind,
As... A)
template <class T, class... As>
void pushCleanupAfterFullExpr(
clang::CodeGen::CleanupKind Kind,
As... A)
Description
Queue a cleanup to be pushed after finishing the current full-expression, potentially with an active flag.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:788
Templates
- T
- As
Parameters
- clang::CodeGen::CleanupKind Kind
- As... A
¶template <class T, class... As>
void pushCleanupAfterFullExprWithActiveFlag(
clang::CodeGen::CleanupKind Kind,
clang::CodeGen::Address ActiveFlag,
As... A)
template <class T, class... As>
void pushCleanupAfterFullExprWithActiveFlag(
clang::CodeGen::CleanupKind Kind,
clang::CodeGen::Address ActiveFlag,
As... A)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:805
Templates
- T
- As
Parameters
- clang::CodeGen::CleanupKind Kind
- clang::CodeGen::Address ActiveFlag
- As... A
¶void pushDestroy(
QualType::DestructionKind dtorKind,
clang::CodeGen::Address addr,
clang::QualType type)
void pushDestroy(
QualType::DestructionKind dtorKind,
clang::CodeGen::Address addr,
clang::QualType type)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2048
Parameters
- QualType::DestructionKind dtorKind
- clang::CodeGen::Address addr
- clang::QualType type
¶void pushDestroy(
clang::CodeGen::CleanupKind kind,
clang::CodeGen::Address addr,
clang::QualType type,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool useEHCleanupForArray)
void pushDestroy(
clang::CodeGen::CleanupKind kind,
clang::CodeGen::Address addr,
clang::QualType type,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool useEHCleanupForArray)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2052
Parameters
- clang::CodeGen::CleanupKind kind
- clang::CodeGen::Address addr
- clang::QualType type
- clang::CodeGen::CodeGenFunction::Destroyer* destroyer
- bool useEHCleanupForArray
¶void pushEHDestroy(
QualType::DestructionKind dtorKind,
clang::CodeGen::Address addr,
clang::QualType type)
void pushEHDestroy(
QualType::DestructionKind dtorKind,
clang::CodeGen::Address addr,
clang::QualType type)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2050
Parameters
- QualType::DestructionKind dtorKind
- clang::CodeGen::Address addr
- clang::QualType type
¶template <class T, class... As>
void pushFullExprCleanup(
clang::CodeGen::CleanupKind kind,
As... A)
template <class T, class... As>
void pushFullExprCleanup(
clang::CodeGen::CleanupKind kind,
As... A)
Description
pushFullExprCleanup - Push a cleanup to be run at the end of the current full-expression. Safe against the possibility that we're currently inside a conditionally-evaluated expression.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:770
Templates
- T
- As
Parameters
- clang::CodeGen::CleanupKind kind
- As... A
¶void pushIrregularPartialArrayCleanup(
llvm::Value* arrayBegin,
clang::CodeGen::Address arrayEndPointer,
clang::QualType elementType,
clang::CharUnits elementAlignment,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer)
void pushIrregularPartialArrayCleanup(
llvm::Value* arrayBegin,
clang::CodeGen::Address arrayEndPointer,
clang::QualType elementType,
clang::CharUnits elementAlignment,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2037
Parameters
- llvm::Value* arrayBegin
- clang::CodeGen::Address arrayEndPointer
- clang::QualType elementType
- clang::CharUnits elementAlignment
- clang::CodeGen::CodeGenFunction::Destroyer* destroyer
¶void pushLifetimeExtendedDestroy(
clang::CodeGen::CleanupKind kind,
clang::CodeGen::Address addr,
clang::QualType type,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool useEHCleanupForArray)
void pushLifetimeExtendedDestroy(
clang::CodeGen::CleanupKind kind,
clang::CodeGen::Address addr,
clang::QualType type,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer,
bool useEHCleanupForArray)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2054
Parameters
- clang::CodeGen::CleanupKind kind
- clang::CodeGen::Address addr
- clang::QualType type
- clang::CodeGen::CodeGenFunction::Destroyer* destroyer
- bool useEHCleanupForArray
¶void pushRegularPartialArrayCleanup(
llvm::Value* arrayBegin,
llvm::Value* arrayEnd,
clang::QualType elementType,
clang::CharUnits elementAlignment,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer)
void pushRegularPartialArrayCleanup(
llvm::Value* arrayBegin,
llvm::Value* arrayEnd,
clang::QualType elementType,
clang::CharUnits elementAlignment,
clang::CodeGen::CodeGenFunction::Destroyer*
destroyer)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2042
Parameters
- llvm::Value* arrayBegin
- llvm::Value* arrayEnd
- clang::QualType elementType
- clang::CharUnits elementAlignment
- clang::CodeGen::CodeGenFunction::Destroyer* destroyer
¶void pushSEHCleanup(
clang::CodeGen::CleanupKind kind,
llvm::Function* FinallyFunc)
void pushSEHCleanup(
clang::CodeGen::CleanupKind kind,
llvm::Function* FinallyFunc)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3286
Parameters
- clang::CodeGen::CleanupKind kind
- llvm::Function* FinallyFunc
¶void pushStackRestore(
clang::CodeGen::CleanupKind kind,
clang::CodeGen::Address SPMem)
void pushStackRestore(
clang::CodeGen::CleanupKind kind,
clang::CodeGen::Address SPMem)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2060
Parameters
- clang::CodeGen::CleanupKind kind
- clang::CodeGen::Address SPMem
¶clang::CodeGen::Address recoverAddrOfEscapedLocal(
clang::CodeGen::CodeGenFunction& ParentCGF,
clang::CodeGen::Address ParentVar,
llvm::Value* ParentFP)
clang::CodeGen::Address recoverAddrOfEscapedLocal(
clang::CodeGen::CodeGenFunction& ParentCGF,
clang::CodeGen::Address ParentVar,
llvm::Value* ParentFP)
Description
Recovers the address of a local in a parent function. ParentVar is the address of the variable used in the immediate parent function. It can either be an alloca or a call to llvm.localrecover if there are nested outlined functions. ParentFP is the frame pointer of the outermost parent frame.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3318
Parameters
- clang::CodeGen::CodeGenFunction& ParentCGF
- clang::CodeGen::Address ParentVar
- llvm::Value* ParentFP
¶void registerGlobalDtorWithAtExit(
llvm::Constant* dtorStub)
void registerGlobalDtorWithAtExit(
llvm::Constant* dtorStub)
Description
Call atexit() with function dtorStub.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4444
Parameters
- llvm::Constant* dtorStub
¶void registerGlobalDtorWithAtExit(
const clang::VarDecl& D,
llvm::FunctionCallee fn,
llvm::Constant* addr)
void registerGlobalDtorWithAtExit(
const clang::VarDecl& D,
llvm::FunctionCallee fn,
llvm::Constant* addr)
Description
Call atexit() with a function that passes the given argument to the given function.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4440
Parameters
- const clang::VarDecl& D
- llvm::FunctionCallee fn
- llvm::Constant* addr
¶bool requiresReturnValueCheck() const
bool requiresReturnValueCheck() const
Description
Check if the return value of this function requires sanitization.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1957
¶bool requiresReturnValueNullabilityCheck() const
bool requiresReturnValueNullabilityCheck() const
Description
Check if -fsanitize=nullability-return instrumentation is required for this function.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1948
¶bool sanitizePerformTypeCheck() const
bool sanitizePerformTypeCheck() const
Description
Whether any type-checking sanitizers are enabled. If \c false, calls to EmitTypeCheck can be skipped.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2994
¶template <class T>
typename DominatingValue<T>::saved_type
saveValueInCond(T value)
template <class T>
typename DominatingValue<T>::saved_type
saveValueInCond(T value)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:710
Templates
- T
Parameters
- T value
¶void setAddrOfLocalVar(
const clang::VarDecl* VD,
clang::CodeGen::Address Addr)
void setAddrOfLocalVar(
const clang::VarDecl* VD,
clang::CodeGen::Address Addr)
Description
Set the address of a local variable.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4675
Parameters
- const clang::VarDecl* VD
- clang::CodeGen::Address Addr
¶void setBeforeOutermostConditional(
llvm::Value* value,
clang::CodeGen::Address addr)
void setBeforeOutermostConditional(
llvm::Value* value,
clang::CodeGen::Address addr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1214
Parameters
- llvm::Value* value
- clang::CodeGen::Address addr
¶void setBlockContextParameter(
const clang::ImplicitParamDecl* D,
unsigned int argNum,
llvm::Value* ptr)
void setBlockContextParameter(
const clang::ImplicitParamDecl* D,
unsigned int argNum,
llvm::Value* ptr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:2175
Parameters
- const clang::ImplicitParamDecl* D
- unsigned int argNum
- llvm::Value* ptr
¶void setCurrentProfileCount(uint64_t Count)
void setCurrentProfileCount(uint64_t Count)
Description
Set the profiler's current count.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1541
Parameters
- uint64_t Count
¶bool shouldUseFusedARCCalls()
bool shouldUseFusedARCCalls()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1992
¶void startOutlinedSEHHelper(
clang::CodeGen::CodeGenFunction& ParentCGF,
bool IsFilter,
const clang::Stmt* OutlinedStmt)
void startOutlinedSEHHelper(
clang::CodeGen::CodeGenFunction& ParentCGF,
bool IsFilter,
const clang::Stmt* OutlinedStmt)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3288
Parameters
- clang::CodeGen::CodeGenFunction& ParentCGF
- bool IsFilter
- const clang::Stmt* OutlinedStmt
¶clang::CodeGen::CodeGenFunction::ConstantEmission
tryEmitAsConstant(const clang::MemberExpr* ME)
clang::CodeGen::CodeGenFunction::ConstantEmission
tryEmitAsConstant(const clang::MemberExpr* ME)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3966
Parameters
- const clang::MemberExpr* ME
¶clang::CodeGen::CodeGenFunction::ConstantEmission
tryEmitAsConstant(clang::DeclRefExpr* refExpr)
clang::CodeGen::CodeGenFunction::ConstantEmission
tryEmitAsConstant(clang::DeclRefExpr* refExpr)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3965
Parameters
- clang::DeclRefExpr* refExpr
¶void unprotectFromPeepholes(
clang::CodeGen::CodeGenFunction::
PeepholeProtection protection)
void unprotectFromPeepholes(
clang::CodeGen::CodeGenFunction::
PeepholeProtection protection)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:3182
Parameters
- clang::CodeGen::CodeGenFunction:: PeepholeProtection protection
¶llvm::Value* unregisterGlobalDtorWithUnAtExit(
llvm::Constant* dtorStub)
llvm::Value* unregisterGlobalDtorWithUnAtExit(
llvm::Constant* dtorStub)
Description
Call unatexit() with function dtorStub.
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4447
Parameters
- llvm::Constant* dtorStub
¶llvm::Value* vectorWrapScalar16(llvm::Value* Op)
llvm::Value* vectorWrapScalar16(llvm::Value* Op)
Declared at: clang/lib/CodeGen/CodeGenFunction.h:4190
Parameters
- llvm::Value* Op
¶~CodeGenFunction()
~CodeGenFunction()
Declared at: clang/lib/CodeGen/CodeGenFunction.h:1980