/arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
H A D | analysis.h | 26 class Inst; 29 Inst *InstStoredValue(Inst *inst, Inst **secondValue); 30 Inst *InstStoredValue(Inst *inst); 32 template <typename T = Inst> 34 bool HasTryBlockBetween(Inst *dominateInst, Inst *inst); 35 bool IsSuitableForImplicitNullCheck(const Inst *ins [all...] |
H A D | graph_checker.h | 82 void CheckUserOfInt32(BasicBlock *block, Inst *inst, User &user); 83 void CheckInstUsers(Inst *inst, [[maybe_unused]] BasicBlock *block); 84 void CheckPhiInputs(Inst *phiInst); 91 bool CheckInstHasInput(Inst *inst, Inst *input); 92 bool CheckInstHasUser(Inst *inst, Inst *user); 95 bool FindCaller(Inst *caller, BasicBlock *domBlock, ArenaStack<Inst *> *inlinedCalls); 96 void CheckSpillFillHolder(Inst *ins [all...] |
/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
H A D | checks_elimination.h | 33 using GroupedBoundsChecks = ArenaVector<std::tuple<Inst *, InstVector, int64_t, int64_t>>; 35 using LoopNotFullyRedundantBoundsCheck = ArenaVector<std::pair<Inst *, GroupedBoundsChecks>>; 38 using InstPair = std::pair<Inst *, Inst *>; 39 using InstTriple = std::tuple<Inst *, Inst *, Inst *>; 43 using LoopInfo = std::tuple<CountableLoopInfo, Inst *, Inst *, Inst *, ConditionCod [all...] |
H A D | memory_coalescing.h | 29 Inst *first; 30 Inst *second; 70 static void RemoveAddI(Inst *inst); 74 void ReplacePair(Inst *first, Inst *second, Inst *insertAfter); 76 Inst *ReplaceLoadArray(Inst *first, Inst *second, Inst *insertAfte [all...] |
H A D | peepholes.h | 68 static void VisitSafePoint([[maybe_unused]] GraphVisitor *v, Inst *inst); 69 static void VisitNeg([[maybe_unused]] GraphVisitor *v, Inst *inst); 70 static void VisitAbs([[maybe_unused]] GraphVisitor *v, Inst *inst); 71 static void VisitNot([[maybe_unused]] GraphVisitor *v, Inst *inst); 72 static void VisitAdd([[maybe_unused]] GraphVisitor *v, Inst *inst); 73 static void VisitAddFinalize([[maybe_unused]] GraphVisitor *v, Inst *inst, Inst *input0, Inst *input1); 74 static void VisitSub([[maybe_unused]] GraphVisitor *v, Inst *inst); 75 static void VisitSubFinalize([[maybe_unused]] GraphVisitor *v, Inst *ins [all...] |
H A D | const_folding.h | 21 bool ConstFoldingCast(Inst *inst); 22 bool ConstFoldingNeg(Inst *inst); 23 bool ConstFoldingAbs(Inst *inst); 24 bool ConstFoldingNot(Inst *inst); 25 bool ConstFoldingAdd(Inst *inst); 26 bool ConstFoldingSub(Inst *inst); 27 bool ConstFoldingMul(Inst *inst); 28 bool ConstFoldingBinaryMathWithNan(Inst *inst); 29 bool ConstFoldingDiv(Inst *inst); 30 bool ConstFoldingDivWithNan(Inst *ins [all...] |
H A D | simplify_string_builder.h | 71 Inst *instance {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 72 Inst *ctorCall {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 73 Inst *toStringCall {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 83 void FixBrokenSaveStates(Inst *source, Inst *target); 87 size_t appendCount, Inst *before); 89 void RemoveStringBuilderInstance(Inst *instance); 146 Inst *initialValue {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 149 Inst *instance {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 150 Inst *ctorCal [all...] |
H A D | memory_barriers.h | 62 void VisitDefault([[maybe_unused]] Inst *inst) override 68 void CheckAllInputs(Inst *inst); 69 void CheckInput(Inst *input); 70 void CheckTwoInputs(Inst *input1, Inst *input2); 72 static void VisitCallStatic(GraphVisitor *v, Inst *inst); 73 static void VisitCallIndirect(GraphVisitor *v, Inst *inst); 74 static void VisitCall(GraphVisitor *v, Inst *inst); 75 static void VisitCallResolvedStatic(GraphVisitor *v, Inst *inst); 76 static void VisitCallVirtual(GraphVisitor *v, Inst *ins [all...] |
H A D | escape.h | 49 using StateOwner = std::variant<Inst *, PhiState *, const ZeroInst *>; 50 using MaterializationSite = std::variant<Inst *, BasicBlock *>; 120 static bool IsAllocInst(Inst *inst) in IsAllocInst() 126 static void Visit##InstName(GraphVisitor *v, Inst *inst) \ 133 static void Visit##InstName(GraphVisitor *v, Inst *inst) \ 161 static void VisitCallStatic([[maybe_unused]] GraphVisitor *v, [[maybe_unused]] Inst *inst) in VisitCallStatic() 165 static void VisitCallVirtual([[maybe_unused]] GraphVisitor *v, [[maybe_unused]] Inst *inst) in VisitCallVirtual() 169 static void VisitCompare([[maybe_unused]] GraphVisitor *v, [[maybe_unused]] Inst *inst) in VisitCompare() 173 static void VisitIf([[maybe_unused]] GraphVisitor *v, [[maybe_unused]] Inst *inst) in VisitIf() 177 static void VisitPhi([[maybe_unused]] GraphVisitor *v, [[maybe_unused]] Inst *ins in VisitIf() [all...] |
H A D | string_builder_utils.h | 28 bool IsStringBuilderInstance(Inst *inst); 29 bool IsMethodStringConcat(Inst *inst); 30 bool IsMethodStringBuilderConstructorWithStringArg(Inst *inst); 31 bool IsMethodStringBuilderConstructorWithCharArrayArg(Inst *inst); 32 bool IsStringBuilderToString(Inst *inst); 33 bool IsMethodStringBuilderDefaultConstructor(Inst *inst); 34 void InsertBeforeWithSaveState(Inst *inst, Inst *before); 35 void InsertAfterWithSaveState(Inst *inst, Inst *afte [all...] |
H A D | scheduler.h | 58 void AddDep(uint32_t *prio, Inst *from, Inst *to, uint32_t latency, Inst *barrier); 62 void ProcessInst(Inst *inst, uint32_t *numInst, uint32_t *numBetween, uint32_t *numSpecial, Inst **lastBarrier); 63 void ProcessMemory(Inst *inst, uint32_t *prio, Inst *lastBarrier); 64 void ProcessSpecial(Inst *inst, uint32_t *prio, Inst *lastBarrier); 65 void ProcessSpecialBoundsCheckI(Inst *ins [all...] |
H A D | cleanup.h | 66 void MarkInlinedCaller(Marker liveMrk, Inst *saveState); 67 bool IsRemovableCall(Inst *inst); 69 void MarkLiveRec(Marker liveMrk, Inst *inst); 73 void MarkOneLiveInst(Marker deadMrk, Marker liveMrk, Inst *inst); 77 bool TryToRemoveNonLiveInst(Inst *inst, BasicBlock *bb, ArenaSet<BasicBlock *> *newEmptyBlocks, Marker liveMrk); 79 void SetLiveRec(Inst *inst, Marker mrk, Marker liveMrk); 80 void LiveUserSearchRec(Inst *inst, Marker mrk, Marker liveMrk, Marker deadMrk); 83 void TryMarkInstIsDead(Inst *inst, Marker deadMrk, Marker mrk, Marker liveMrk); 91 void BuildDominatorsVisitPhi(Inst *inst, size_t &amount); 106 ArenaUnorderedMap<Inst *, uint32_ [all...] |
H A D | locations_builder.h | 52 static Location GetLocationForReturn(Inst *inst); 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 *ins [all...] |
H A D | lowering.h | 58 * For example, suppose that we want to test if IR-subtree rooted by some Inst matches add or sub instruction 61 * Inst* inst = ...; 93 Inst *Get(size_t i) in Get() 99 void Set(size_t i, Inst *inst) 137 std::array<Inst *, MAX_OPERANDS> operands_; 143 void Add(Inst *inst) in Add() 195 std::array<Inst *, MAX_INSTS> insts_ {}; 202 static bool Capture(Inst *inst, OperandsCapture<MAX_OPERANDS> &args, InstructionsCapture<MAX_INSTS> &insts) in Capture() 227 static bool Capture(Inst *inst, OperandsCapture<MAX_OPERANDS> &args, InstructionsCapture<MAX_INSTS> &insts) in Capture() 243 static bool Capture(Inst *ins [all...] |
H A D | memory_barriers.cpp | 37 bool OptimizeMemoryBarriers::CheckInst(Inst *inst) in CheckInst() 42 void OptimizeMemoryBarriers::CheckAllInputs(Inst *inst) in CheckAllInputs() 52 void OptimizeMemoryBarriers::CheckInput(Inst *input) in CheckInput() 59 void OptimizeMemoryBarriers::CheckTwoInputs(Inst *input1, Inst *input2) in CheckTwoInputs() 66 void OptimizeMemoryBarriers::VisitCallStatic(GraphVisitor *v, Inst *inst) in VisitCallStatic() 74 void OptimizeMemoryBarriers::VisitCallIndirect(GraphVisitor *v, Inst *inst) in VisitCallIndirect() 79 void OptimizeMemoryBarriers::VisitCall(GraphVisitor *v, Inst *inst) in VisitCall() 84 void OptimizeMemoryBarriers::VisitCallResolvedStatic(GraphVisitor *v, Inst *inst) in VisitCallResolvedStatic() 92 void OptimizeMemoryBarriers::VisitCallVirtual(GraphVisitor *v, Inst *ins [all...] |
/arkcompiler/runtime_core/static_core/compiler/optimizer/code_generator/ |
H A 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 *ins [all...] |
/arkcompiler/runtime_core/static_core/libllvmbackend/lowering/ |
H A D | llvm_ir_constructor.h | 32 bool IsSafeCast(Inst *inst, unsigned int index); 33 bool TryEmitIntrinsic(Inst *inst, RuntimeInterface::IntrinsicId arkId); 37 bool EmitFastPath(Inst *inst, RuntimeInterface::EntrypointId eid, uint32_t numArgs); 38 bool EmitStringEquals(Inst *inst); 39 bool EmitStringBuilderBool(Inst *inst); 40 bool EmitStringBuilderChar(Inst *inst); 41 bool EmitStringBuilderString(Inst *inst); 42 bool EmitStringConcat2(Inst *inst); 43 bool EmitStringConcat3(Inst *inst); 44 bool EmitStringConcat4(Inst *ins [all...] |
/arkcompiler/runtime_core/static_core/irtoc/backend/compiler/ |
H A D | dangling_pointers_checker.h | 51 ArenaVector<const Inst *> objectsUsers_; 53 ArenaVector<Inst *> phiInsts_; 54 ArenaSet<Inst *> objectInsts_; 55 Inst *accLivein_ {nullptr}; 56 Inst *accTagLivein_ {nullptr}; 57 Inst *frameLivein_ {nullptr}; 58 Inst *threadLivein_ {nullptr}; 59 Inst *lastAccDef_ {nullptr}; 60 Inst *lastAccTagDef_ {nullptr}; 61 Inst *lastFrameDef [all...] |
/arkcompiler/runtime_core/static_core/compiler/optimizer/analysis/ |
H A D | alias_analysis.h | 65 Pointer(PointerType type, const Inst *base, const Inst *idx, uint64_t imm, const void *typePtr) in Pointer() 71 static Pointer CreateObject(const Inst *base) in CreateObject() 86 static Pointer CreateObjectField(const Inst *base, uint32_t typeId, const void *typePtr = nullptr) in CreateObjectField() 91 static Pointer CreateArrayElement(const Inst *array, const Inst *idx, uint64_t imm = 0) in CreateArrayElement() 96 static Pointer CreateDictionaryElement(const Inst *array, const Inst *idx, uint64_t imm = 0) in CreateDictionaryElement() 106 const Inst *GetBase() const in GetBase() 111 const Inst *GetId [all...] |
/arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
H A D | cleanup.h | 62 void MarkLiveRec(Marker live_mrk, Inst *inst); 65 void SetLiveRec(Inst *inst, Marker mrk, Marker live_mrk); 66 void LiveUserSearchRec(Inst *inst, Marker mrk, Marker live_mrk, Marker dead_mrk); 87 ArenaUnorderedMap<Inst *, uint32_t> map_; 89 Inst *fake_root_ {nullptr}; 94 inline uint32_t GetInstId(Inst *inst) const in GetInstId() 103 void SetIdom(Inst *inst, Inst *idom) in SetIdom() 107 Inst *GetIdom(Inst *ins in SetIdom() [all...] |
/arkcompiler/runtime_core/libark_defect_scan_aux/ |
H A D | graph.cpp | 28 bool Inst::operator==(const Inst &inst) const in operator ==() 33 bool Inst::operator!=(const Inst &inst) const in operator !=() 38 InstType Inst::GetType() const in GetType() 43 bool Inst::IsInstStLexVar() const in IsInstStLexVar() 49 bool Inst::IsInstLdLexVar() const in IsInstLdLexVar() 55 bool Inst::IsInstStGlobal() const in IsInstStGlobal() 62 bool Inst::IsInstLdGlobal() const in IsInstLdGlobal() 68 uint16_t Inst [all...] |
/arkcompiler/runtime_core/static_core/bytecode_optimizer/ |
H A D | codegen.h | 33 using compiler::Inst; 106 void AddLineNumber(const Inst *inst, size_t idx); 107 void AddColumnNumber(const Inst *inst, uint32_t idx); 108 void AddLineAndColumnNumber(const Inst *inst, size_t idx); 114 static void VisitSpillFill(GraphVisitor *v, Inst *inst); 115 static void VisitConstant(GraphVisitor *v, Inst *inst); 116 static void VisitCallStatic(GraphVisitor *visitor, Inst *inst); 117 static void VisitCallVirtual(GraphVisitor *visitor, Inst *inst); 118 static void VisitInitObject(GraphVisitor *visitor, Inst *inst); 119 static void VisitCatchPhi(GraphVisitor *visitor, Inst *ins [all...] |
H A D | reg_encoder.h | 97 using ark::compiler::Inst; 118 void Check4Width(compiler::Inst *inst); 119 void Check8Width(compiler::Inst *inst); 126 static void VisitSpillFill([[maybe_unused]] GraphVisitor *v, [[maybe_unused]] Inst *inst); 127 static void VisitConstant([[maybe_unused]] GraphVisitor *v, [[maybe_unused]] Inst *inst); 128 static void VisitCatchPhi([[maybe_unused]] GraphVisitor *v, [[maybe_unused]] Inst *inst); 129 static void VisitCallStatic(GraphVisitor *v, Inst *inst); 130 static void VisitCallVirtual(GraphVisitor *v, Inst *inst); 131 static void VisitInitObject(GraphVisitor *v, Inst *inst); 132 static void VisitIntrinsic(GraphVisitor *v, Inst *ins [all...] |
/arkcompiler/runtime_core/compiler/optimizer/ir/ |
H A D | graph_checker.h | 62 void CheckPhiInputs(Inst *phi_inst); 69 bool CheckInstHasInput(Inst *inst, Inst *input); 70 bool CheckInstHasUser(Inst *inst, Inst *user); 72 void CheckSpillFillHolder(Inst *inst); 73 bool CheckInstRegUsageSaved(const Inst *inst, Register reg) const; 86 void CheckObjectRec(const Inst *object, const Inst *user, const BasicBlock *block, Inst *start_fro [all...] |
H A D | inst.cpp | 23 void Inst::ReserveInputs(size_t capacity) in ReserveInputs() 29 Inst *User::GetInst() in GetInst() 33 return *reinterpret_cast<Inst **>(this + GetIndex() + 1); in GetInst() 40 return reinterpret_cast<Inst *>(p); in GetInst() 43 void Inst::InsertBefore(Inst *inst) in InsertBefore() 49 void Inst::InsertAfter(Inst *inst) in InsertAfter() 63 auto size = new_capacity * (sizeof(User) + sizeof(Inst *)) + sizeof(Inst *); in Reallocate() [all...] |