Lines Matching refs:mlir

10 class ComplexExprEmitter : public StmtVisitor<ComplexExprEmitter, mlir::Value> {
22 LValue emitBinAssignLValue(const BinaryOperator *e, mlir::Value &val);
24 mlir::Value emitCast(CastKind ck, Expr *op, QualType destTy);
26 mlir::Value emitConstant(const CIRGenFunction::ConstantEmission &constant,
32 mlir::Value emitLoadOfLValue(const Expr *e) { in emitLoadOfLValue()
36 mlir::Value emitLoadOfLValue(LValue lv, SourceLocation loc);
39 void emitStoreOfComplex(mlir::Location loc, mlir::Value val, LValue lv,
42 mlir::Value
44 mlir::Value VisitArraySubscriptExpr(Expr *e);
45 mlir::Value VisitBinAssign(const BinaryOperator *e);
46 mlir::Value VisitBinComma(const BinaryOperator *e);
47 mlir::Value VisitCallExpr(const CallExpr *e);
48 mlir::Value VisitCastExpr(CastExpr *e);
49 mlir::Value VisitChooseExpr(ChooseExpr *e);
50 mlir::Value VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *e);
51 mlir::Value VisitDeclRefExpr(DeclRefExpr *e);
52 mlir::Value VisitGenericSelectionExpr(GenericSelectionExpr *e);
53 mlir::Value VisitImplicitCastExpr(ImplicitCastExpr *e);
54 mlir::Value VisitInitListExpr(const InitListExpr *e);
55 mlir::Value VisitImaginaryLiteral(const ImaginaryLiteral *il);
56 mlir::Value VisitParenExpr(ParenExpr *e);
57 mlir::Value
59 mlir::Value VisitUnaryDeref(const Expr *e);
62 mlir::Location loc;
63 mlir::Value lhs{};
64 mlir::Value rhs{};
72 mlir::Value emitPromoted(const Expr *e, QualType promotionTy);
74 mlir::Value emitPromotedComplexOperand(const Expr *e, QualType promotionTy);
76 mlir::Value emitBinAdd(const BinOpInfo &op);
77 mlir::Value emitBinSub(const BinOpInfo &op);
99 mlir::Value VisitBin##OP(const BinaryOperator *e) { \
102 mlir::Value result = emitBin##OP(emitBinOps(e, promotionTy)); \
122 mlir::Value &value) { in emitBinAssignLValue()
138 mlir::Value ComplexExprEmitter::emitCast(CastKind ck, Expr *op, in emitCast()
151 mlir::Value ComplexExprEmitter::emitConstant( in emitConstant()
158 mlir::TypedAttr valueAttr = constant.getValue(); in emitConstant()
162 mlir::Value ComplexExprEmitter::emitLoadOfLValue(LValue lv, in emitLoadOfLValue()
172 void ComplexExprEmitter::emitStoreOfComplex(mlir::Location loc, mlir::Value val, in emitStoreOfComplex()
184 mlir::Value ComplexExprEmitter::VisitAbstractConditionalOperator( in VisitAbstractConditionalOperator()
186 mlir::Value condValue = Visit(e->getCond()); in VisitAbstractConditionalOperator()
187 mlir::Location loc = cgf.getLoc(e->getSourceRange()); in VisitAbstractConditionalOperator()
193 [&](mlir::OpBuilder &b, mlir::Location loc) { in VisitAbstractConditionalOperator()
194 mlir::Value trueValue = Visit(e->getTrueExpr()); in VisitAbstractConditionalOperator()
198 [&](mlir::OpBuilder &b, mlir::Location loc) { in VisitAbstractConditionalOperator()
199 mlir::Value falseValue = Visit(e->getFalseExpr()); in VisitAbstractConditionalOperator()
205 mlir::Value ComplexExprEmitter::VisitArraySubscriptExpr(Expr *e) { in VisitArraySubscriptExpr()
209 mlir::Value ComplexExprEmitter::VisitBinAssign(const BinaryOperator *e) { in VisitBinAssign()
210 mlir::Value value; in VisitBinAssign()
225 mlir::Value ComplexExprEmitter::VisitBinComma(const BinaryOperator *e) { in VisitBinComma()
230 mlir::Value ComplexExprEmitter::VisitCallExpr(const CallExpr *e) { in VisitCallExpr()
237 mlir::Value ComplexExprEmitter::VisitCastExpr(CastExpr *e) { in VisitCastExpr()
252 mlir::Value ComplexExprEmitter::VisitChooseExpr(ChooseExpr *e) { in VisitChooseExpr()
256 mlir::Value
258 mlir::Location loc = cgf.getLoc(e->getExprLoc()); in VisitCXXScalarValueInitExpr()
259 mlir::Type complexTy = cgf.convertType(e->getType()); in VisitCXXScalarValueInitExpr()
263 mlir::Value ComplexExprEmitter::VisitDeclRefExpr(DeclRefExpr *e) { in VisitDeclRefExpr()
269 mlir::Value
274 mlir::Value ComplexExprEmitter::VisitImplicitCastExpr(ImplicitCastExpr *e) { in VisitImplicitCastExpr()
282 mlir::Value ComplexExprEmitter::VisitInitListExpr(const InitListExpr *e) { in VisitInitListExpr()
283 mlir::Location loc = cgf.getLoc(e->getExprLoc()); in VisitInitListExpr()
285 mlir::Value real = cgf.emitScalarExpr(e->getInit(0)); in VisitInitListExpr()
286 mlir::Value imag = cgf.emitScalarExpr(e->getInit(1)); in VisitInitListExpr()
296 mlir::Type complexTy = cgf.convertType(e->getType()); in VisitInitListExpr()
300 mlir::Value
302 auto ty = mlir::cast<cir::ComplexType>(cgf.convertType(il->getType())); in VisitImaginaryLiteral()
303 mlir::Type elementTy = ty.getElementType(); in VisitImaginaryLiteral()
304 mlir::Location loc = cgf.getLoc(il->getExprLoc()); in VisitImaginaryLiteral()
306 mlir::TypedAttr realValueAttr; in VisitImaginaryLiteral()
307 mlir::TypedAttr imagValueAttr; in VisitImaginaryLiteral()
309 if (mlir::isa<cir::IntType>(elementTy)) { in VisitImaginaryLiteral()
314 assert(mlir::isa<cir::FPTypeInterface>(elementTy) && in VisitImaginaryLiteral()
328 mlir::Value ComplexExprEmitter::VisitParenExpr(ParenExpr *e) { in VisitParenExpr()
332 mlir::Value ComplexExprEmitter::VisitSubstNonTypeTemplateParmExpr( in VisitSubstNonTypeTemplateParmExpr()
337 mlir::Value ComplexExprEmitter::VisitUnaryDeref(const Expr *e) { in VisitUnaryDeref()
341 mlir::Value ComplexExprEmitter::emitPromoted(const Expr *e, in emitPromoted()
360 mlir::Value result = Visit(const_cast<Expr *>(e)); in emitPromoted()
367 mlir::Value
390 mlir::Value ComplexExprEmitter::emitBinAdd(const BinOpInfo &op) { in emitBinAdd()
396 mlir::Value ComplexExprEmitter::emitBinSub(const BinOpInfo &op) { in emitBinSub()
405 mlir::Value value; // ignored in emitComplexAssignmentLValue()
413 mlir::Value CIRGenFunction::emitComplexExpr(const Expr *e) { in emitComplexExpr()
420 void CIRGenFunction::emitStoreOfComplex(mlir::Location loc, mlir::Value v, in emitStoreOfComplex()
425 mlir::Value CIRGenFunction::emitPromotedComplexExpr(const Expr *e, in emitPromotedComplexExpr()