|
clang
5.0.0
|
#include "CodeGenFunction.h"#include "CGCleanup.h"#include "CGCXXABI.h"#include "CGDebugInfo.h"#include "CGObjCRuntime.h"#include "CodeGenModule.h"#include "TargetInfo.h"#include "clang/AST/ASTContext.h"#include "clang/AST/DeclObjC.h"#include "clang/AST/Expr.h"#include "clang/AST/RecordLayout.h"#include "clang/AST/StmtVisitor.h"#include "clang/Basic/TargetInfo.h"#include "clang/Frontend/CodeGenOptions.h"#include "llvm/ADT/Optional.h"#include "llvm/IR/CFG.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/Function.h"#include "llvm/IR/GetElementPtrTypeIterator.h"#include "llvm/IR/GlobalVariable.h"#include "llvm/IR/Intrinsics.h"#include "llvm/IR/Module.h"#include <cstdarg>Go to the source code of this file.
Macros | |
| #define | HANDLEBINOP(OP) |
| #define | VISITCOMP(CODE, UI, SI, FP) |
| #define | COMPOUND_OP(Op) |
Enumerations | |
| enum | IntrinsicType { VCMPEQ, VCMPGT } |
Functions | |
| static llvm::Constant * | getMaskElt (llvm::ShuffleVectorInst *SVI, unsigned Idx, unsigned Off, llvm::Type *I32Ty) |
| static llvm::Constant * | getAsInt32 (llvm::ConstantInt *C, llvm::Type *I32Ty) |
| static BinOpInfo | createBinOpInfoFromIncDec (const UnaryOperator *E, llvm::Value *InVal, bool IsInc) |
| static Value * | emitPointerArithmetic (CodeGenFunction &CGF, const BinOpInfo &op, bool isSubtraction) |
| Emit pointer + index arithmetic. More... | |
| static Value * | buildFMulAdd (llvm::BinaryOperator *MulOp, Value *Addend, const CodeGenFunction &CGF, CGBuilderTy &Builder, bool negMul, bool negAdd) |
| static Value * | tryEmitFMulAdd (const BinOpInfo &op, const CodeGenFunction &CGF, CGBuilderTy &Builder, bool isSub=false) |
| static llvm::Intrinsic::ID | GetIntrinsic (IntrinsicType IT, BuiltinType::Kind ElemKind) |
| static bool | isCheapEnoughToEvaluateUnconditionally (const Expr *E, CodeGenFunction &CGF) |
| isCheapEnoughToEvaluateUnconditionally - Return true if the specified expression is cheap enough and side-effect-free enough to evaluate unconditionally instead of conditionally. More... | |
| static Value * | ConvertVec3AndVec4 (CGBuilderTy &Builder, CodeGenFunction &CGF, Value *Src, unsigned NumElementsDst) |
| static Value * | createCastsForTypeOfSameSize (CGBuilderTy &Builder, const llvm::DataLayout &DL, Value *Src, llvm::Type *DstTy, StringRef Name="") |
| #define COMPOUND_OP | ( | Op | ) |
Referenced by clang::CodeGen::CodeGenFunction::EmitCompoundAssignmentLValue().
| #define HANDLEBINOP | ( | OP | ) |
Definition at line 693 of file CGExprScalar.cpp.
| #define VISITCOMP | ( | CODE, | |
| UI, | |||
| SI, | |||
| FP | |||
| ) |
Definition at line 716 of file CGExprScalar.cpp.
| enum IntrinsicType |
| Enumerator | |
|---|---|
| VCMPEQ | |
| VCMPGT | |
Definition at line 3039 of file CGExprScalar.cpp.
|
static |
Definition at line 2748 of file CGExprScalar.cpp.
References clang::CodeGen::CodeGenFunction::CGM, and clang::CodeGen::CodeGenModule::getIntrinsic().
Referenced by tryEmitFMulAdd().
|
static |
Definition at line 3640 of file CGExprScalar.cpp.
References clang::CodeGen::CodeGenTypeCache::Int32Ty.
|
static |
Definition at line 1812 of file CGExprScalar.cpp.
References E, and clang::Expr::getType().
|
static |
Definition at line 3669 of file CGExprScalar.cpp.
References clang::CodeGen::CGBuilderTy::CreateBitCast(), and clang::CodeGen::CGBuilderTy::CreatePointerBitCastOrAddrSpaceCast().
|
static |
Emit pointer + index arithmetic.
Definition at line 2651 of file CGExprScalar.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::Type::castAs(), clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CGBuilderTy::CreateBitCast(), clang::CodeGen::CodeGenFunction::EmitBoundsCheck(), clang::CodeGen::CodeGenFunction::EmitCheckedInBoundsGEP(), clang::ast_matchers::expr, clang::Type::getAs(), clang::ASTContext::getAsVariableArrayType(), clang::CodeGen::CodeGenFunction::getContext(), clang::CodeGen::CodeGenModule::getDataLayout(), clang::CodeGen::CodeGenFunction::getLangOpts(), clang::BinaryOperator::getLHS(), clang::PointerType::getPointeeType(), clang::BinaryOperator::getRHS(), clang::CodeGen::CodeGenModule::getSize(), clang::Expr::getType(), clang::ASTContext::getTypeSizeInChars(), clang::CodeGen::CodeGenFunction::getVLASize(), clang::SanitizerSet::has(), clang::Type::isFunctionType(), clang::Type::isSignedIntegerOrEnumerationType(), clang::LangOptions::isSignedOverflowDefined(), clang::Type::isVoidType(), clang::CodeGen::CodeGenFunction::SanOpts, and clang::CodeGen::CodeGenTypeCache::VoidPtrTy.
|
static |
Definition at line 1344 of file CGExprScalar.cpp.
|
static |
Definition at line 3041 of file CGExprScalar.cpp.
References VCMPEQ.
|
static |
Definition at line 1336 of file CGExprScalar.cpp.
|
static |
isCheapEnoughToEvaluateUnconditionally - Return true if the specified expression is cheap enough and side-effect-free enough to evaluate unconditionally instead of conditionally.
This is used to convert control flow into selects in some cases.
Definition at line 3450 of file CGExprScalar.cpp.
References clang::CodeGen::CodeGenFunction::getContext(), clang::Expr::IgnoreParens(), and clang::Expr::isEvaluatable().
|
static |
Definition at line 2781 of file CGExprScalar.cpp.
References buildFMulAdd().
1.8.6