Lines Matching +full:allocator +full:-
7 * http://www.apache.org/licenses/LICENSE-2.0
43 if (!eleType->IsETSUnionType() && !eleType->IsETSAnyType()) { in GenerateDefaultCallToConstructor()
44 auto *indexSymbol = Gensym(Allocator()); in GenerateDefaultCallToConstructor()
45 auto *lengthSymbol = Gensym(Allocator()); in GenerateDefaultCallToConstructor()
46 auto *typeNode = checker_->AllocNode<ir::OpaqueTypeNode>(eleType, Allocator()); in GenerateDefaultCallToConstructor()
49 newStmts.emplace_back(arraySymbol->Clone(Allocator(), nullptr)); in GenerateDefaultCallToConstructor()
52 newStmts.emplace_back(indexSymbol->Clone(Allocator(), nullptr)); in GenerateDefaultCallToConstructor()
53 newStmts.emplace_back(lengthSymbol->Clone(Allocator(), nullptr)); in GenerateDefaultCallToConstructor()
54 newStmts.emplace_back(indexSymbol->Clone(Allocator(), nullptr)); in GenerateDefaultCallToConstructor()
55 newStmts.emplace_back(indexSymbol->Clone(Allocator(), nullptr)); in GenerateDefaultCallToConstructor()
57 newStmts.emplace_back(arraySymbol->Clone(Allocator(), nullptr)); in GenerateDefaultCallToConstructor()
58 newStmts.emplace_back(indexSymbol->Clone(Allocator(), nullptr)); in GenerateDefaultCallToConstructor()
60 newStmts.emplace_back(typeNode->Clone(Allocator(), nullptr)); in GenerateDefaultCallToConstructor()
62 ArenaVector<ir::Statement *> emptyStatement(Allocator()->Adapter()); in GenerateDefaultCallToConstructor()
66 return parser_->CreateFormattedStatements(ss.str(), newStmts); in GenerateDefaultCallToConstructor()
71 … while (node != nullptr && !(node->IsClassDefinition() && node->AsClassDefinition()->IsGlobal())) { in IsInAnnotationContext()
72 if (node->IsAnnotationDeclaration() || node->IsAnnotationUsage()) { in IsInAnnotationContext()
75 node = node->Parent(); in IsInAnnotationContext()
83 … literalArray->TsType() != nullptr ? literalArray->TsType() : literalArray->GetPreferredType(); in TryTransformLiteralArrayToRefArray()
84 if (literalArrayType->IsETSArrayType() || literalArrayType->IsETSTupleType() || in TryTransformLiteralArrayToRefArray()
85 !literalArrayType->IsETSResizableArrayType() || IsInAnnotationContext(literalArray)) { in TryTransformLiteralArrayToRefArray()
88 auto *arrayType = literalArrayType->AsETSResizableArrayType()->ElementType(); in TryTransformLiteralArrayToRefArray()
91 auto *genSymIdent = Gensym(Allocator()); in TryTransformLiteralArrayToRefArray()
92 auto *type = checker_->AllocNode<ir::OpaqueTypeNode>(arrayType, Allocator()); in TryTransformLiteralArrayToRefArray()
97 literalArray->SetTsType(nullptr); in TryTransformLiteralArrayToRefArray()
99 newStmts.emplace_back(type->Clone(Allocator(), nullptr)); in TryTransformLiteralArrayToRefArray()
100 newStmts.emplace_back(genSymIdent->Clone(Allocator(), nullptr)); in TryTransformLiteralArrayToRefArray()
102 auto *parent = literalArray->Parent(); in TryTransformLiteralArrayToRefArray()
103 auto *loweringResult = parser_->CreateFormattedExpression(ss.str(), newStmts); in TryTransformLiteralArrayToRefArray()
105 loweringResult->SetRange(literalArray->Range()); in TryTransformLiteralArrayToRefArray()
106 loweringResult->SetParent(parent); in TryTransformLiteralArrayToRefArray()
116 if (newExpr->TsType()->IsETSArrayType()) { in TryTransformNewArrayExprToRefArray()
119 ES2PANDA_ASSERT(newExpr->TsType()->IsETSResizableArrayType()); in TryTransformNewArrayExprToRefArray()
121 auto *arrayType = newExpr->TsType()->AsETSResizableArrayType()->ElementType(); in TryTransformNewArrayExprToRefArray()
123 auto *genSymIdent = Gensym(Allocator()); in TryTransformNewArrayExprToRefArray()
127 auto *type = checker_->AllocNode<ir::OpaqueTypeNode>(arrayType, Allocator()); in TryTransformNewArrayExprToRefArray()
128 auto *dimension = newExpr->Dimension()->Clone(Allocator(), nullptr); in TryTransformNewArrayExprToRefArray()
133 ArenaVector<ir::Statement *> statements(Allocator()->Adapter()); in TryTransformNewArrayExprToRefArray()
134 auto *newArrStatement = parser_->CreateFormattedStatement(ss.str(), newStmts); in TryTransformNewArrayExprToRefArray()
138 …auto returnStmt = parser_->CreateFormattedStatement("@@I1", genSymIdent->Clone(Allocator(), nullpt… in TryTransformNewArrayExprToRefArray()
140 auto *loweringResult = checker_->AllocNode<ir::BlockExpression>(std::move(statements)); in TryTransformNewArrayExprToRefArray()
141 loweringResult->SetRange(newExpr->Range()); in TryTransformNewArrayExprToRefArray()
142 loweringResult->SetParent(newExpr->Parent()); in TryTransformNewArrayExprToRefArray()
143 auto *scope = NearestScope(loweringResult->Parent()); in TryTransformNewArrayExprToRefArray()
153 auto *genSymIdent = Gensym(Allocator()); in CreateNestedArrayCreationStatement()
154 auto *arraySymbol = Gensym(Allocator()); in CreateNestedArrayCreationStatement()
155 auto *lastDimIdent = identDims[currentDim - 1]; in CreateNestedArrayCreationStatement()
157 auto *arrayType = type->AsETSResizableArrayType()->ElementType(); in CreateNestedArrayCreationStatement()
158 auto typeNode = checker_->AllocNode<ir::OpaqueTypeNode>(arrayType, Allocator()); in CreateNestedArrayCreationStatement()
159 auto arrayAccessExpr = checker_->AllocNode<ir::MemberExpression>( in CreateNestedArrayCreationStatement()
160 expr->Clone(Allocator(), nullptr)->AsExpression(), genSymIdent->Clone(Allocator(), nullptr), in CreateNestedArrayCreationStatement()
165 ir::Statement *forUpdateStmt = parser_->CreateFormattedStatement( in CreateNestedArrayCreationStatement()
166 creationTemplate, genSymIdent, genSymIdent->Clone(Allocator(), nullptr), in CreateNestedArrayCreationStatement()
167 lastDimIdent->Clone(Allocator(), nullptr), genSymIdent->Clone(Allocator(), nullptr), in CreateNestedArrayCreationStatement()
168 …genSymIdent->Clone(Allocator(), nullptr), arraySymbol, typeNode, currentDimIdent->Clone(Allocator(… in CreateNestedArrayCreationStatement()
169 arrayAccessExpr, arraySymbol->Clone(Allocator(), nullptr)); in CreateNestedArrayCreationStatement()
172 … forUpdateStmt->AsForUpdateStatement()->Body()->AsBlockStatement()->AddStatement(consequentStmt); in CreateNestedArrayCreationStatement()
176 …forUpdateStmt->AsForUpdateStatement()->Body()->AsBlockStatement()->AddStatements(newArrElementStat… in CreateNestedArrayCreationStatement()
186 ArenaVector<ir::Identifier *> idents(Allocator()->Adapter()); in TransformDimVectorToIdentVector()
187 auto addNode = [&statements](ir::AstNode *node) -> size_t { in TransformDimVectorToIdentVector()
194 idents.emplace_back(Gensym(Allocator())); in TransformDimVectorToIdentVector()
195 …ss << "let @@I" << addNode(idents[i]) << " = @@E" << addNode(dimVector[i]->Clone(Allocator(), null… in TransformDimVectorToIdentVector()
197 auto parsedStatement = parser_->CreateFormattedStatements(ss.str(), statements); in TransformDimVectorToIdentVector()
205 if (newExpr->TsType()->IsETSArrayType()) { in TryTransformNewMultiDimArrayToRefArray()
208 ES2PANDA_ASSERT(newExpr->TsType()->IsETSResizableArrayType()); in TryTransformNewMultiDimArrayToRefArray()
209 ArenaVector<ir::Statement *> statements(Allocator()->Adapter()); in TryTransformNewMultiDimArrayToRefArray()
211 auto arrayType = newExpr->TsType()->AsETSResizableArrayType()->ElementType(); in TryTransformNewMultiDimArrayToRefArray()
212 auto *type = checker_->AllocNode<ir::OpaqueTypeNode>(arrayType, Allocator()); in TryTransformNewMultiDimArrayToRefArray()
213 auto *genSymIdent = Gensym(Allocator()); in TryTransformNewMultiDimArrayToRefArray()
215 auto idents = TransformDimVectorToIdentVector(newExpr->Dimensions(), statements); in TryTransformNewMultiDimArrayToRefArray()
217 …parser_->CreateFormattedStatements(newArray, genSymIdent, type, idents[0]->Clone(Allocator(), null… in TryTransformNewMultiDimArrayToRefArray()
219 …auto returnStmt = parser_->CreateFormattedStatement("@@I1", genSymIdent->Clone(Allocator(), nullpt… in TryTransformNewMultiDimArrayToRefArray()
223 auto loweringResult = checker_->AllocNode<ir::BlockExpression>(std::move(statements)); in TryTransformNewMultiDimArrayToRefArray()
224 loweringResult->SetRange(newExpr->Range()); in TryTransformNewMultiDimArrayToRefArray()
225 loweringResult->SetParent(newExpr->Parent()); in TryTransformNewMultiDimArrayToRefArray()
226 auto *scope = NearestScope(loweringResult->Parent()); in TryTransformNewMultiDimArrayToRefArray()
234 parser_ = ctx->parser->AsETSParser(); in PerformForModule()
235 varbinder_ = ctx->parserProgram->VarBinder()->AsETSBinder(); in PerformForModule()
236 checker_ = ctx->checker->AsETSChecker(); in PerformForModule()
237 program->Ast()->TransformChildrenRecursively( in PerformForModule()
238 [this](ir::AstNode *ast) -> AstNodePtr { in PerformForModule()
239 if (ast->IsArrayExpression()) { in PerformForModule()
240 return TryTransformLiteralArrayToRefArray(ast->AsArrayExpression()); in PerformForModule()
242 if (ast->IsETSNewArrayInstanceExpression()) { in PerformForModule()
243 return TryTransformNewArrayExprToRefArray(ast->AsETSNewArrayInstanceExpression()); in PerformForModule()
245 if (ast->IsETSNewMultiDimArrayInstanceExpression()) { in PerformForModule()
246 … return TryTransformNewMultiDimArrayToRefArray(ast->AsETSNewMultiDimArrayInstanceExpression()); in PerformForModule()
255 ArenaAllocator *ArrayLiteralLowering::Allocator() in Allocator() function in ark::es2panda::compiler::ArrayLiteralLowering
257 return checker_->Allocator(); in Allocator()