Lines Matching defs:ScalarExprEmitter

229 class ScalarExprEmitter
230 : public StmtVisitor<ScalarExprEmitter, Value*> {
237 ScalarExprEmitter(CodeGenFunction &cgf, bool ira=false)
422 return StmtVisitor<ScalarExprEmitter, Value*>::Visit(E);
829 Value *(ScalarExprEmitter::*F)(const BinOpInfo &),
833 Value *(ScalarExprEmitter::*F)(const BinOpInfo &));
864 return EmitCompoundAssign(E, &ScalarExprEmitter::Emit##OP); \
938 Value *ScalarExprEmitter::EmitConversionToBool(Value *Src, QualType SrcType) {
957 void ScalarExprEmitter::EmitFloatConversionCheck(
1027 static std::pair<ScalarExprEmitter::ImplicitConversionCheckKind,
1046 ScalarExprEmitter::ImplicitConversionCheckKind Kind;
1049 Kind = ScalarExprEmitter::ICCK_UnsignedIntegerTruncation;
1052 Kind = ScalarExprEmitter::ICCK_SignedIntegerTruncation;
1070 void ScalarExprEmitter::EmitIntegerTruncationCheck(Value *Src, QualType SrcType,
1101 std::pair<ScalarExprEmitter::ImplicitConversionCheckKind,
1138 static std::pair<ScalarExprEmitter::ImplicitConversionCheckKind,
1174 ScalarExprEmitter::ICCK_IntegerSignChange,
1178 void ScalarExprEmitter::EmitIntegerSignChangeCheck(Value *Src, QualType SrcType,
1225 std::pair<ScalarExprEmitter::ImplicitConversionCheckKind,
1263 static std::pair<ScalarExprEmitter::ImplicitConversionCheckKind,
1270 ScalarExprEmitter::ImplicitConversionCheckKind Kind;
1272 Kind = ScalarExprEmitter::ICCK_UnsignedIntegerTruncation;
1274 Kind = ScalarExprEmitter::ICCK_SignedIntegerTruncation;
1289 static std::pair<ScalarExprEmitter::ImplicitConversionCheckKind,
1308 ScalarExprEmitter::ICCK_IntegerSignChange,
1343 std::pair<ScalarExprEmitter::ImplicitConversionCheckKind,
1377 ScalarExprEmitter::ImplicitConversionCheckKind CheckKind = Check.first;
1379 CheckKind = ScalarExprEmitter::ICCK_SignedIntegerTruncationOrSignChange;
1391 Value *ScalarExprEmitter::EmitScalarCast(Value *Src, QualType SrcType,
1452 Value *ScalarExprEmitter::EmitScalarConversion(Value *Src, QualType SrcType,
1670 Value *ScalarExprEmitter::EmitFixedPointConversion(Value *Src, QualType SrcTy,
1701 Value *ScalarExprEmitter::EmitComplexToScalarConversion(
1722 Value *ScalarExprEmitter::EmitNullValue(QualType Ty) {
1730 void ScalarExprEmitter::EmitBinOpCheck(
1781 Value *ScalarExprEmitter::VisitExpr(Expr *E) {
1789 ScalarExprEmitter::VisitSYCLUniqueStableNameExpr(SYCLUniqueStableNameExpr *E) {
1801 Value *ScalarExprEmitter::VisitEmbedExpr(EmbedExpr *E) {
1807 Value *ScalarExprEmitter::VisitShuffleVectorExpr(ShuffleVectorExpr *E) {
1861 Value *ScalarExprEmitter::VisitConvertVectorExpr(ConvertVectorExpr *E) {
1935 Value *ScalarExprEmitter::VisitMemberExpr(MemberExpr *E) {
1970 Value *ScalarExprEmitter::VisitArraySubscriptExpr(ArraySubscriptExpr *E) {
1993 Value *ScalarExprEmitter::VisitMatrixSubscriptExpr(MatrixSubscriptExpr *E) {
2028 Value *ScalarExprEmitter::VisitInitListExpr(InitListExpr *E) {
2222 Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
2710 Value *ScalarExprEmitter::VisitStmtExpr(const StmtExpr *E) {
2720 Value *ScalarExprEmitter::VisitExprWithCleanups(ExprWithCleanups *E) {
2746 llvm::Value *ScalarExprEmitter::EmitIncDecConsiderOverflowBehavior(
2789 ScalarExprEmitter::EmitScalarPrePostIncDec(const UnaryOperator *E, LValue LV,
3133 Value *ScalarExprEmitter::VisitUnaryPlus(const UnaryOperator *E,
3144 Value *ScalarExprEmitter::VisitPlus(const UnaryOperator *E,
3153 Value *ScalarExprEmitter::VisitUnaryMinus(const UnaryOperator *E,
3164 Value *ScalarExprEmitter::VisitMinus(const UnaryOperator *E,
3188 Value *ScalarExprEmitter::VisitUnaryNot(const UnaryOperator *E) {
3194 Value *ScalarExprEmitter::VisitUnaryLNot(const UnaryOperator *E) {
3223 Value *ScalarExprEmitter::VisitOffsetOfExpr(OffsetOfExpr *E) {
3317 ScalarExprEmitter::VisitUnaryExprOrTypeTraitExpr(
3360 Value *ScalarExprEmitter::VisitUnaryReal(const UnaryOperator *E,
3371 Value *ScalarExprEmitter::VisitReal(const UnaryOperator *E,
3399 Value *ScalarExprEmitter::VisitUnaryImag(const UnaryOperator *E,
3410 Value *ScalarExprEmitter::VisitImag(const UnaryOperator *E,
3450 Value *ScalarExprEmitter::EmitPromotedValue(Value *result,
3455 Value *ScalarExprEmitter::EmitUnPromotedValue(Value *result,
3460 Value *ScalarExprEmitter::EmitPromoted(const Expr *E, QualType PromotionType) {
3499 BinOpInfo ScalarExprEmitter::EmitBinOps(const BinaryOperator *E,
3515 LValue ScalarExprEmitter::EmitCompoundAssignLValue(
3517 Value *(ScalarExprEmitter::*Func)(const BinOpInfo &),
3672 Value *ScalarExprEmitter::EmitCompoundAssign(const CompoundAssignOperator *E,
3673 Value *(ScalarExprEmitter::*Func)(const BinOpInfo &)) {
3694 void ScalarExprEmitter::EmitUndefinedBehaviorIntegerDivAndRemCheck(
3725 Value *ScalarExprEmitter::EmitDiv(const BinOpInfo &Ops) {
3775 Value *ScalarExprEmitter::EmitRem(const BinOpInfo &Ops) {
3792 Value *ScalarExprEmitter::EmitOverflowCheckedBinOp(const BinOpInfo &Ops) {
4140 Value *ScalarExprEmitter::EmitAdd(const BinOpInfo &op) {
4194 Value *ScalarExprEmitter::EmitFixedPointBinOp(const BinOpInfo &op) {
4298 Value *ScalarExprEmitter::EmitSub(const BinOpInfo &op) {
4405 Value *ScalarExprEmitter::GetMaximumShiftAmount(Value *LHS, Value *RHS,
4425 Value *ScalarExprEmitter::ConstrainShiftValue(Value *LHS, Value *RHS,
4440 Value *ScalarExprEmitter::EmitShl(const BinOpInfo &Ops) {
4520 Value *ScalarExprEmitter::EmitShr(const BinOpInfo &Ops) {
4597 Value *ScalarExprEmitter::EmitCompare(const BinaryOperator *E,
4799 Value *ScalarExprEmitter::VisitBinAssign(const BinaryOperator *E) {
4873 Value *ScalarExprEmitter::VisitBinLAnd(const BinaryOperator *E) {
5013 Value *ScalarExprEmitter::VisitBinLOr(const BinaryOperator *E) {
5147 Value *ScalarExprEmitter::VisitBinComma(const BinaryOperator *E) {
5175 Value *ScalarExprEmitter::
5366 Value *ScalarExprEmitter::VisitChooseExpr(ChooseExpr *E) {
5370 Value *ScalarExprEmitter::VisitVAArgExpr(VAArgExpr *VE) {
5382 Value *ScalarExprEmitter::VisitBlockExpr(const BlockExpr *block) {
5439 Value *ScalarExprEmitter::VisitAsTypeExpr(AsTypeExpr *E) {
5486 Value *ScalarExprEmitter::VisitAtomicExpr(AtomicExpr *E) {
5500 return ScalarExprEmitter(*this, IgnoreResultAssign)
5511 return ScalarExprEmitter(*this).EmitScalarConversion(Src, SrcTy, DstTy, Loc);
5522 return ScalarExprEmitter(*this)
5531 return ScalarExprEmitter(*this).EmitPromoted(E, PromotionType);
5533 return ScalarExprEmitter(*this).Visit(const_cast<Expr *>(E));
5540 return ScalarExprEmitter(*this).EmitScalarPrePostIncDec(E, LV, isInc, isPre);
5565 ScalarExprEmitter Scalar(*this);
5570 return Scalar.EmitCompoundAssignLValue(E, &ScalarExprEmitter::Emit##Op, \