| /arkcompiler/runtime_core/static_core/compiler/optimizer/code_generator/ |
| D | encode_visitor.h | 75 static void VisitMov(GraphVisitor *visitor, Inst *inst); 76 static void VisitNeg(GraphVisitor *visitor, Inst *inst); 77 static void VisitAbs(GraphVisitor *visitor, Inst *inst); 78 static void VisitNot(GraphVisitor *visitor, Inst *inst); 79 static void VisitSqrt(GraphVisitor *visitor, Inst *inst); 82 static void VisitAdd(GraphVisitor *visitor, Inst *inst); 83 static void VisitSub(GraphVisitor *visitor, Inst *inst); 84 static void VisitMul(GraphVisitor *visitor, Inst *inst); 85 static void VisitShl(GraphVisitor *visitor, Inst *inst); 86 static void VisitAShr(GraphVisitor *visitor, Inst *inst); [all …]
|
| D | encode_visitor.cpp | 22 void EncodeVisitor::Visit##opc(GraphVisitor *visitor, Inst *inst) \ 24 EncodeVisitor *enc = static_cast<EncodeVisitor *>(visitor); \ 31 void EncodeVisitor::Visit##opc(GraphVisitor *visitor, Inst *inst) \ 33 EncodeVisitor *enc = static_cast<EncodeVisitor *>(visitor); \ 40 void EncodeVisitor::Visit##opc##SR(GraphVisitor *visitor, Inst *inst) \ 42 EncodeVisitor *enc = static_cast<EncodeVisitor *>(visitor); \ 63 void EncodeVisitor::Visit##opc##I(GraphVisitor *visitor, Inst *inst) \ in ENCODE_INST_WITH_SHIFTED_OPERAND() 66 EncodeVisitor *enc = static_cast<EncodeVisitor *>(visitor); \ in ENCODE_INST_WITH_SHIFTED_OPERAND() 88 void EncodeVisitor::Visit##opc##I(GraphVisitor *visitor, Inst *inst) \ 92 EncodeVisitor *enc = static_cast<EncodeVisitor *>(visitor); \ [all …]
|
| /arkcompiler/ets_runtime/ecmascript/mem/ |
| D | object_xray.h | 131 static inline void VisitVMRoots(EcmaVM *vm, RootVisitor &visitor, VMRootVisitType type) in VisitVMRoots() argument 133 vm->Iterate(visitor, type); in VisitVMRoots() 134 vm->GetAssociatedJSThread()->Iterate(visitor); in VisitVMRoots() 144 EcmaObjectRangeVisitor<DerivedVisitor> &visitor) in VisitObjectBody() argument 162 JSObject::Cast(object)->VisitRangeSlot<visitType>(visitor); in VisitObjectBody() 166 jsSharedObject->VisitRangeSlot<visitType>(visitor); in VisitObjectBody() 170 JSAsyncFromSyncIterator::Cast(object)->VisitRangeSlot<visitType>(visitor); in VisitObjectBody() 173 JSGlobalObject::Cast(object)->VisitRangeSlot<visitType>(visitor); in VisitObjectBody() 177 jsFunctionBase->VisitRangeSlot<visitType>(visitor); in VisitObjectBody() 182 jsFunction->VisitRangeSlot<visitType>(visitor); in VisitObjectBody() [all …]
|
| D | visitor.h | 96 …static inline void IterateBody(TaggedObject *root, EcmaObjectRangeVisitor<DerivedVisitor> &visitor) in IterateBody() argument 100 visitor(root, ObjectSlot(ToUintPtr(root)), in IterateBody() 103 visitor(root, ObjectSlot(ToUintPtr(root) + hclassEnd), in IterateBody() 115 …static inline void IterateBody(TaggedObject *root, EcmaObjectRangeVisitor<DerivedVisitor> &visitor) in IterateBody() argument 119 IterateHClass(root, visitor); in IterateBody() 121 IterateBefore(root, visitor); in IterateBody() 124 visitor(root, ObjectSlot(ToUintPtr(root) + startOffset), in IterateBody() 129 IterateAfter(root, visitor); in IterateBody() 134 …tic inline void IterateRefBody(TaggedObject *root, EcmaObjectRangeVisitor<DerivedVisitor> &visitor) in IterateRefBody() argument 136 IterateBody<VisitObjectArea::NORMAL, true>(root, visitor); in IterateRefBody() [all …]
|
| D | remembered_set.h | 82 template <typename Visitor> 83 void IterateAllMarkedBits(uintptr_t begin, Visitor visitor) in IterateAllMarkedBits() argument 85 GCBitsetData()->IterateMarkedBits<Visitor, AccessType::NON_ATOMIC>(begin, size_, visitor); in IterateAllMarkedBits() 88 template <typename Visitor> 89 void AtomicIterateAllMarkedBits(uintptr_t begin, Visitor visitor) in AtomicIterateAllMarkedBits() argument 91 GCBitsetData()->IterateMarkedBits<Visitor, AccessType::ATOMIC>(begin, size_, visitor); in AtomicIterateAllMarkedBits() 94 template <typename Visitor> 95 void IterateAllMarkedBitsConst(uintptr_t begin, Visitor visitor) const in IterateAllMarkedBitsConst() argument 97 GCBitsetData()->IterateMarkedBitsConst(begin, size_, visitor); in IterateAllMarkedBitsConst()
|
| D | rset_worklist_handler.h | 31 template<class Visitor> 32 inline void Process(const Visitor &visitor); 48 template<class Visitor> 49 inline void ProcessAll(const Visitor &visitor); 60 template<class Visitor> 61 inline void ProcessAllVisitor(const Visitor &visitor, int done); 73 template<class Visitor> 74 inline bool ProcessNext(const Visitor &visitor);
|
| D | rset_worklist_handler-inl.h | 31 template<class Visitor> 32 inline void RSetItem::Process([[maybe_unused]] const Visitor &visitor) in Process() argument 34 visitor(region_, rSet_); in Process() 75 template<class Visitor> 76 ARK_INLINE bool RSetWorkListHandler::ProcessNext(const Visitor &visitor) in ProcessNext() argument 84 items_[idx].Process(visitor); in ProcessNext() 88 template<class Visitor> 89 inline void RSetWorkListHandler::ProcessAllVisitor(const Visitor &visitor, int done) in ProcessAllVisitor() argument 91 while (ProcessNext(visitor)) { in ProcessAllVisitor() 103 template<class Visitor> [all …]
|
| D | region-inl.h | 198 template <typename Visitor> 199 inline void Region::IterateAllMarkedBits(Visitor &&visitor) const in IterateAllMarkedBits() argument 202 reinterpret_cast<uintptr_t>(this), packedData_.bitsetSize_, visitor); in IterateAllMarkedBits() 294 template <typename Visitor> 295 inline void Region::IterateAllLocalToShareBits(Visitor visitor) in IterateAllLocalToShareBits() argument 298 packedData_.localToShareSet_->IterateAllMarkedBits(ToUintPtr(this), visitor); in IterateAllLocalToShareBits() 302 template <typename Visitor> 303 inline void Region::IterateAllCrossRegionBits(Visitor visitor) const in IterateAllCrossRegionBits() argument 306 crossRegionSet_->IterateAllMarkedBitsConst(ToUintPtr(this), visitor); in IterateAllCrossRegionBits() 351 template <typename Visitor> [all …]
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
| D | locations_builder.h | 54 static void VisitResolveStatic(GraphVisitor *visitor, Inst *inst); 55 static void VisitCallResolvedStatic(GraphVisitor *visitor, Inst *inst); 56 static void VisitCallStatic(GraphVisitor *visitor, Inst *inst); 57 static void VisitCallVirtual(GraphVisitor *visitor, Inst *inst); 58 static void VisitCallLaunchStatic(GraphVisitor *visitor, Inst *inst); 59 static void VisitCallLaunchVirtual(GraphVisitor *visitor, Inst *inst); 60 static void VisitCallResolvedLaunchStatic(GraphVisitor *visitor, Inst *inst); 61 static void VisitCallResolvedLaunchVirtual(GraphVisitor *visitor, Inst *inst); 62 static void VisitResolveVirtual(GraphVisitor *visitor, Inst *inst); 63 static void VisitCallResolvedVirtual(GraphVisitor *visitor, Inst *inst); [all …]
|
| D | locations_builder.cpp | 136 LOCATIONS_BUILDER(void)::VisitResolveStatic([[maybe_unused]] GraphVisitor *visitor, Inst *inst) in LOCATIONS_BUILDER() 141 LOCATIONS_BUILDER(void)::VisitCallResolvedStatic(GraphVisitor *visitor, Inst *inst) in LOCATIONS_BUILDER() 146 static_cast<LocationsBuilder *>(visitor)->ProcessManagedCall(inst); in LOCATIONS_BUILDER() 149 LOCATIONS_BUILDER(void)::VisitResolveVirtual([[maybe_unused]] GraphVisitor *visitor, Inst *inst) in LOCATIONS_BUILDER() 154 LOCATIONS_BUILDER(void)::VisitCallResolvedVirtual(GraphVisitor *visitor, Inst *inst) in LOCATIONS_BUILDER() 159 static_cast<LocationsBuilder *>(visitor)->ProcessManagedCall(inst); in LOCATIONS_BUILDER() 162 LOCATIONS_BUILDER(void)::VisitCallStatic(GraphVisitor *visitor, Inst *inst) in LOCATIONS_BUILDER() 167 static_cast<LocationsBuilder *>(visitor)->ProcessManagedCall(inst); in LOCATIONS_BUILDER() 170 LOCATIONS_BUILDER(void)::VisitCallVirtual(GraphVisitor *visitor, Inst *inst) in LOCATIONS_BUILDER() 175 static_cast<LocationsBuilder *>(visitor)->ProcessManagedCall(inst); in LOCATIONS_BUILDER() [all …]
|
| /arkcompiler/runtime_core/libabckit/tests/scenarios/router_table/dynamic/ |
| D | router_table_test.cpp | 58 static void TransformMethod(AbckitCoreFunction *method, VisitHelper &visitor, const UserData *ud, L… in TransformMethod() argument 60 visitor.TransformMethod(method, [&](AbckitFile *file, AbckitCoreFunction *method) { in TransformMethod() 73 …std::string(visitor.GetString(routerInfo.scheme)) + std::string(visitor.GetString(routerInfo.path)… in TransformMethod() 112 static void ModifyRouterTable(AbckitCoreFunction *method, VisitHelper &visitor, in ModifyRouterTable() argument 119 const auto &className = visitor.GetString(ud.classStr); in ModifyRouterTable() 124 const auto &moduleName = visitor.GetString(ud.moduleStr); in ModifyRouterTable() 133 TransformMethod(method, visitor, &ud, &ld); in ModifyRouterTable() 137 static AbckitCoreFunction *FindMethodWithRouterTable(VisitHelper &visitor) in FindMethodWithRouterTable() argument 140 visitor.EnumerateModules([&](AbckitCoreModule *mod) { in FindMethodWithRouterTable() 141 auto moduleName = visitor.GetString(g_implI->moduleGetName(mod)); in FindMethodWithRouterTable() [all …]
|
| /arkcompiler/runtime_core/libabckit/src/codegen/templates/ |
| D | codegen_visitors_static.inc.erb | 22 codegen_visitors_overrides.each do |visitor| 23 plugins_overrides[visitor].nil? ? plugins_overrides[visitor] = [].append(plugin_lang) 24 : plugins_overrides[visitor].append(plugin_lang) 27 ["LoadObject", "LoadStatic", "StoreObject", "StoreStatic"].each do |visitor|%> 28 static bool TryPlugin<%= visitor %>Visitor(GraphVisitor *v, [[maybe_unused]] Inst *inst) { 30 % if plugins_overrides[visitor] 31 % plugins_overrides[visitor].each do |lang| 33 return <%= lang.capitalize %>Visit<%= visitor %>(v, inst);
|
| D | insn_selection_static.cpp.erb | 21 % visitors.each do |visitor| 22 <%= visitor_sig(visitor.ir_op) %> { 27 % if (visitor.ir_op == "#{intrinsic.class_name}Intrinsic") 31 % name = visitor.ir_op unless name 33 <%= visitor.cpp %> 34 <%= visitor.switch.encode %> 40 void CodeGenStatic::VisitInitObjectIntrinsic(GraphVisitor *visitor, Inst *inst) 42 CallHandler(visitor, inst);
|
| /arkcompiler/runtime_core/static_core/bytecode_optimizer/templates/ |
| D | codegen_visitors.inc.erb | 22 codegen_visitors_overrides.each do |visitor| 23 plugins_overrides[visitor].nil? ? plugins_overrides[visitor] = [].append(plugin_lang) 24 : plugins_overrides[visitor].append(plugin_lang) 27 ["LoadObject", "LoadStatic", "StoreObject", "StoreStatic"].each do |visitor|%> 28 static bool TryPlugin<%= visitor %>Visitor(GraphVisitor *v, [[maybe_unused]] Inst *inst) { 30 % if plugins_overrides[visitor] 31 % plugins_overrides[visitor].each do |lang| 33 return <%= lang.capitalize %>Visit<%= visitor %>(v, inst);
|
| D | insn_selection.cpp.erb | 21 % visitors.each do |visitor| 22 <%= visitor_sig(visitor.ir_op) %> { 25 [[maybe_unused]] auto inst = instBase->CastTo<%= visitor.ir_op %>(); 26 <%= visitor.cpp %> 27 <%= visitor.switch.encode %>
|
| /arkcompiler/runtime_core/libabckit/tests/scenarios/replace_call_site/dynamic/ |
| D | replace_call_site_test.cpp | 52 static bool HasSearchedMethod(VisitHelper &visitor, AbckitCoreFunction *method, UserData &userData) in HasSearchedMethod() argument 55 visitor.EnumerateFunctionInsts(method, [&](AbckitInst *inst) { in HasSearchedMethod() 60 visitor.EnumerateInstUsers(inst, [&](AbckitInst *user) { in HasSearchedMethod() 65 visitor.EnumerateInstUsers(inst, [&](AbckitInst *user) { in HasSearchedMethod() 68 auto str = visitor.GetString(g_implG->iGetString(user)); in HasSearchedMethod() 69 auto targetClass = visitor.GetString(userData.targetClass); in HasSearchedMethod() 144 VisitHelper &visitor, in CollectAnnoInfo() argument 148 visitor.EnumerateMethodAnnotations(method, [&](AbckitCoreAnnotation *anno) { in CollectAnnoInfo() 150 auto annoName = visitor.GetString(g_implI->annotationInterfaceGetName(annoClass)); in CollectAnnoInfo() 158 static void FillAnnotationInfo(VisitHelper &visitor, AbckitCoreModule *mod, UserData &ud) in FillAnnotationInfo() argument [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/tests/ |
| D | typed_array_lowering_test.cpp | 60 CombinedPassVisitor visitor(&circuit, false, "LoadTypedArrayLength", &chunk); in HWTEST_F_L0() local 61 TypedHCRLowering lowering(&circuit, nullptr, &visitor, nullptr, &chunk, false); in HWTEST_F_L0() 62 visitor.AddPass(&lowering); in HWTEST_F_L0() 63 visitor.VisitGraph(); in HWTEST_F_L0() 90 CombinedPassVisitor visitor(&circuit, false, "Int32ArrayLoadElement", &chunk); in HWTEST_F_L0() local 91 TypedHCRLowering lowering(&circuit, nullptr, &visitor, nullptr, &chunk, false); in HWTEST_F_L0() 92 visitor.AddPass(&lowering); in HWTEST_F_L0() 93 visitor.VisitGraph(); in HWTEST_F_L0() 127 CombinedPassVisitor visitor(&circuit, false, "Int32OnHeapArrayLoadElement", &chunk); in HWTEST_F_L0() local 128 TypedHCRLowering lowering(&circuit, nullptr, &visitor, nullptr, &chunk, false); in HWTEST_F_L0() [all …]
|
| D | global_value_numbering_test.cpp | 63 CombinedPassVisitor visitor(&circuit, false, "ValueNumbering", &chunk); in HWTEST_F_L0() local 64 ValueNumbering valuenumber(&circuit, &visitor, &chunk, true, false); in HWTEST_F_L0() 88 CombinedPassVisitor visitor(&circuit, false, "ValueNumbering", &chunk); in HWTEST_F_L0() local 89 ValueNumbering valuenumber(&circuit, &visitor, &chunk, true, false); in HWTEST_F_L0() 111 CombinedPassVisitor visitor(&circuit, false, "ValueNumbering", &chunk); in HWTEST_F_L0() local 112 ValueNumbering valuenumber(&circuit, &visitor, &chunk, true, false); in HWTEST_F_L0() 140 CombinedPassVisitor visitor(&circuit, false, "ValueNumbering", &chunk); in HWTEST_F_L0() local 141 ValueNumbering valuenumber(&circuit, &visitor, &chunk, true, false); in HWTEST_F_L0() 142 visitor.AddPass(&valuenumber); in HWTEST_F_L0() 143 visitor.VisitGraph(); in HWTEST_F_L0() [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/ |
| D | pass.h | 280 CombinedPassVisitor visitor(data->GetCircuit(), enableLog, data->GetMethodName(), &chunk); in Run() 281 …EscapeAnalysis escapeAnalysis(data->GetCircuit(), &visitor, &chunk, runtimeOption.GetTraceEscapeAn… in Run() 282 visitor.AddPass(&escapeAnalysis); in Run() 283 visitor.VisitGraph(); in Run() 285 EscapeAnalysisEditor escapeAnalysisEditor(data->GetCircuit(), &visitor, &chunk, in Run() 289 visitor.PrintLog("escape Analysis"); in Run() 339 CombinedPassVisitor visitor(data->GetCircuit(), enableLog, data->GetMethodName(), &chunk); in Run() 340 DeadCodeElimination deadCodeElimination(data->GetCircuit(), &visitor, &chunk); in Run() 341 … TSHCROptPass optimization(data->GetCircuit(), &visitor, &chunk, data->GetPassContext(), enableLog, in Run() 344 visitor.AddPass(&optimization); in Run() [all …]
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
| D | graph_checker_macros.h | 32 #define CHECKER_DO_IF_NOT_VISITOR_INTERNAL(visitor, klass, cond, func) ASSERT_DO((cond), func) argument 37 #define CHECKER_DO_IF_NOT_AND_PRINT_VISITOR(visitor, cond, func) \ argument 38 ASSERT_DO((cond), func; PrintFailedMethodAndPassVisitor(visitor);) 44 #define CHECKER_IF_NOT_PRINT_VISITOR(visitor, cond) CHECKER_DO_IF_NOT_AND_PRINT_VISITOR(visitor, co… argument 76 #define ABCKIT_DO_IF_NOT_VISITOR(visitor, cond, func) \ argument 79 reinterpret_cast<GraphChecker *>(visitor)->SetStatus(false); \ 95 #define CHECKER_DO_IF_NOT_VISITOR_INTERNAL(visitor, klass, cond, func) \ argument 96 if (reinterpret_cast<klass>(visitor)->GetGraph()->IsAbcKit()) { \ 97 ABCKIT_DO_IF_NOT_VISITOR(visitor, (cond), func); \ 105 #define CHECKER_DO_IF_NOT_AND_PRINT_VISITOR(visitor, cond, func) \ argument [all …]
|
| /arkcompiler/runtime_core/libabckit/tests/clean_scenarios/c_api/dynamic/router_table/ |
| D | router_table_test.cpp | 121 void TransformMethod(AbckitCoreFunction *method, VisitHelper &visitor, const UserData *ud, LocalDat… in TransformMethod() argument 123 visitor.TransformMethod(method, [&](AbckitFile *file, AbckitCoreFunction *method) { in TransformMethod() 136 …std::string(visitor.GetString(routerInfo.scheme)) + std::string(visitor.GetString(routerInfo.path)… in TransformMethod() 192 void ModifyRouterTable(AbckitCoreFunction *method, VisitHelper &visitor, const std::vector<UserData… in ModifyRouterTable() argument 198 const auto &className = visitor.GetString(ud.classStr); in ModifyRouterTable() 203 const auto &moduleName = visitor.GetString(ud.moduleStr); in ModifyRouterTable() 212 TransformMethod(method, visitor, &ud, &ld); in ModifyRouterTable() 216 AbckitCoreFunction *FindMethodWithRouterTable(VisitHelper &visitor) in FindMethodWithRouterTable() argument 219 visitor.EnumerateModules([&](AbckitCoreModule *mod) { in FindMethodWithRouterTable() 220 auto moduleName = visitor.GetString(g_implI->moduleGetName(mod)); in FindMethodWithRouterTable() [all …]
|
| /arkcompiler/runtime_core/static_core/runtime/mem/ |
| D | rem_set.h | 52 void Iterate(const RegionPred ®ionPred, const MemVisitor &visitor) const; 53 template <typename Visitor> 54 void IterateOverObjects(const Visitor &visitor) const; 93 template <typename Visitor> 94 void VisitBitmaps(const Visitor &visitor) const; 133 template <typename Visitor> 134 void Iterate(const MemRange &range, const Visitor &visitor) const in Iterate() argument 143 visitor(MemRange(addr, addr + memSize)); in Iterate() 178 …ocessRemSets(const RegionContainer &cont, const RegionPred ®ionPred, const MemVisitor &visitor); 181 bool IterateOverUniqueRange(Region *region, MemRange range, const MemVisitor &visitor); [all …]
|
| D | rem_set-inl.h | 157 inline void RemSet<LockConfigT>::Iterate(const RegionPred ®ionPred, const MemVisitor &visitor) c… in Iterate() argument 163 … bitmap.Iterate(bitmapRange, [region, visitor](const MemRange &range) { visitor(region, range); }); in Iterate() 169 template <typename Visitor> 170 inline void RemSet<LockConfigT>::IterateOverObjects(const Visitor &visitor) const in IterateOverObjects() argument 173 Iterate(regionPred, [visitor](Region *region, const MemRange &range) { in IterateOverObjects() 176 [visitor](void *mem) { visitor(static_cast<ObjectHeader *>(mem)); }); in IterateOverObjects() 249 template <typename Visitor> 250 void RemSet<LockConfigT>::VisitBitmaps(const Visitor &visitor) const in VisitBitmaps() argument 253 visitor(bitmapBeginAddr, bitmap); in VisitBitmaps() 258 …rocessRemSets(const RegionContainer &cont, const RegionPred ®ionPred, const MemVisitor &visitor) in ProcessRemSets() argument [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/aarch64/ |
| D | aarch64_emitter.cpp | 304 A64OpndEmitVisitor visitor(*emitter, nullptr); in Run() local 305 labelOpnd.Accept(visitor); in Run() 441 A64OpndEmitVisitor visitor(emitter, md->opndMD[static_cast<uint32>(seq[i])]); in EmitAArch64Insn() local 443 insn.GetOperand(static_cast<uint32>(seq[i])).Accept(visitor); in EmitAArch64Insn() 635 A64OpndEmitVisitor visitor(emitter, prop0); in EmitClinitTail() local 639 opnd0->Accept(visitor); in EmitClinitTail() 663 A64OpndEmitVisitor visitor(emitter, prop0); in EmitLazyLoad() local 669 opnd0->Accept(visitor); in EmitLazyLoad() 679 opnd0->Accept(visitor); in EmitLazyLoad() 700 A64OpndEmitVisitor visitor(emitter, prop0); in EmitCounter() local [all …]
|
| /arkcompiler/ets_runtime/ecmascript/mem/shared_heap/ |
| D | shared_gc_marker.cpp | 24 void SharedGCMarkerBase::MarkRoots(RootVisitor &visitor, SharedMarkType markType, VMRootVisitType t… in MarkRoots() argument 27 MarkSerializeRoots(visitor); in MarkRoots() 28 MarkSharedModule(visitor); in MarkRoots() 29 MarkStringCache(visitor); in MarkRoots() 40 MarkLocalVMRoots(visitor, vm, markType, type); in MarkRoots() 47 void SharedGCMarkerBase::MarkLocalVMRoots(RootVisitor &visitor, EcmaVM *localVm, SharedMarkType mar… in MarkLocalVMRoots() argument 55 ObjectXRay::VisitVMRoots(localVm, visitor, type); in MarkLocalVMRoots() 69 void SharedGCMarkerBase::MarkSerializeRoots(RootVisitor &visitor) in MarkSerializeRoots() argument 72 Runtime::GetInstance()->IterateSerializeRoot(visitor); in MarkSerializeRoots() 75 void SharedGCMarkerBase::MarkStringCache(RootVisitor &visitor) in MarkStringCache() argument [all …]
|