Changeset View
Changeset View
Standalone View
Standalone View
lib/CodeGen/CodeGenFunction.h
Show First 20 Lines • Show All 3,546 Lines • ▼ Show 20 Lines | public: | ||||
/// evaluate to true based on PGO data. | /// evaluate to true based on PGO data. | ||||
void EmitBranchOnBoolExpr(const Expr *Cond, llvm::BasicBlock *TrueBlock, | void EmitBranchOnBoolExpr(const Expr *Cond, llvm::BasicBlock *TrueBlock, | ||||
llvm::BasicBlock *FalseBlock, uint64_t TrueCount); | llvm::BasicBlock *FalseBlock, uint64_t TrueCount); | ||||
/// Given an assignment `*LHS = RHS`, emit a test that checks if \p RHS is | /// Given an assignment `*LHS = RHS`, emit a test that checks if \p RHS is | ||||
/// nonnull, if \p LHS is marked _Nonnull. | /// nonnull, if \p LHS is marked _Nonnull. | ||||
void EmitNullabilityCheck(LValue LHS, llvm::Value *RHS, SourceLocation Loc); | void EmitNullabilityCheck(LValue LHS, llvm::Value *RHS, SourceLocation Loc); | ||||
/// An enumeration which makes it easier to specify whether or not an | |||||
/// operation is a subtraction. | |||||
enum { NotSubtraction = false, IsSubtraction = true }; | |||||
/// Same as IRBuilder::CreateInBoundsGEP, but additionally emits a check to | /// Same as IRBuilder::CreateInBoundsGEP, but additionally emits a check to | ||||
/// detect undefined behavior when the pointer overflow sanitizer is enabled. | /// detect undefined behavior when the pointer overflow sanitizer is enabled. | ||||
/// \p SignedIndices indicates whether any of the GEP indices are signed. | /// \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. | |||||
llvm::Value *EmitCheckedInBoundsGEP(llvm::Value *Ptr, | llvm::Value *EmitCheckedInBoundsGEP(llvm::Value *Ptr, | ||||
ArrayRef<llvm::Value *> IdxList, | ArrayRef<llvm::Value *> IdxList, | ||||
bool SignedIndices, | bool SignedIndices, | ||||
bool IsSubtraction, | |||||
SourceLocation Loc, | SourceLocation Loc, | ||||
const Twine &Name = ""); | const Twine &Name = ""); | ||||
/// \brief Emit a description of a type in a format suitable for passing to | /// \brief Emit a description of a type in a format suitable for passing to | ||||
/// a runtime sanitizer handler. | /// a runtime sanitizer handler. | ||||
llvm::Constant *EmitCheckTypeDescriptor(QualType T); | llvm::Constant *EmitCheckTypeDescriptor(QualType T); | ||||
/// \brief Convert a value into a format suitable for passing to a runtime | /// \brief Convert a value into a format suitable for passing to a runtime | ||||
▲ Show 20 Lines • Show All 335 Lines • Show Last 20 Lines |