/arkcompiler/runtime_core/compiler/optimizer/analysis/ |
H A D | dominators_tree.h | 23 class BasicBlock; 31 using BlocksVector = ArenaVector<BasicBlock *>; 46 static void SetDomPair(BasicBlock *dominator, BasicBlock *block); 48 void UpdateAfterResolverInsertion(BasicBlock *predecessor, BasicBlock *successor, BasicBlock *resolver); 54 void SetAncestor(BasicBlock *dest, BasicBlock *block) in SetAncestor() 58 BasicBlock *GetAncesto in SetAncestor() [all...] |
H A D | linear_order.h | 24 class BasicBlock; 44 ArenaVector<BasicBlock *> &GetBlocks() in GetBlocks() 49 const ArenaVector<BasicBlock *> &GetBlocks() const in GetBlocks() 59 void HandlePrevInstruction(BasicBlock *block, BasicBlock *prev_block); 60 void HandleIfBlock(BasicBlock *if_true_block, BasicBlock *next_block); 65 BasicBlock *LeastLikelySuccessor(const BasicBlock *block); 68 void DFSAndDeferLeastFrequentBranches(BasicBlock *bloc [all...] |
H A D | loop_analyzer.h | 23 class BasicBlock; 28 Loop(ArenaAllocator *allocator, BasicBlock *header, uint32_t id) in Loop() 49 BasicBlock *GetHeader() const in GetHeader() 53 void SetPreHeader(BasicBlock *pre_header) in SetPreHeader() 58 BasicBlock *GetPreHeader() const in GetPreHeader() 62 void AppendBackEdge(BasicBlock *block) in AppendBackEdge() 68 void ReplaceBackEdge(BasicBlock *block, BasicBlock *new_block) in ReplaceBackEdge() 78 bool HasBackEdge(BasicBlock *block) const in HasBackEdge() 84 void RemoveBackEdge(BasicBlock *bloc [all...] |
H A D | rpo.h | 25 class BasicBlock; 48 void RemoveBasicBlock(BasicBlock *rm_block) in RemoveBasicBlock() 57 void AddBasicBlockAfter(BasicBlock *cur_block, BasicBlock *new_block) in AddBasicBlockAfter() 64 void AddBasicBlockBefore(BasicBlock *cur_block, BasicBlock *new_block) in AddBasicBlockBefore() 71 void AddVectorAfter(BasicBlock *cur_block, const ArenaVector<BasicBlock *> &new_vector) in AddVectorAfter() 78 const ArenaVector<BasicBlock *> &GetBlocks() const in GetBlocks() 86 void DFS(BasicBlock *bloc [all...] |
/arkcompiler/runtime_core/static_core/compiler/optimizer/analysis/ |
H A D | dominators_tree.h | 23 class BasicBlock; 29 using BlocksVector = ArenaVector<BasicBlock *>; 44 static void SetDomPair(BasicBlock *dominator, BasicBlock *block); 46 void UpdateAfterResolverInsertion(BasicBlock *predecessor, BasicBlock *successor, BasicBlock *resolver); 52 void SetAncestor(BasicBlock *dest, BasicBlock *block) in SetAncestor() 56 BasicBlock *GetAncesto in SetAncestor() [all...] |
H A D | linear_order.h | 24 class BasicBlock; 44 ArenaVector<BasicBlock *> &GetBlocks() in GetBlocks() 49 const ArenaVector<BasicBlock *> &GetBlocks() const in GetBlocks() 59 void HandlePrevInstruction(BasicBlock *block, BasicBlock *prevBlock); 60 void HandleIfBlock(BasicBlock *ifTrueBlock, BasicBlock *nextBlock); 66 BasicBlock *LeastLikelySuccessor(const BasicBlock *block); 67 BasicBlock *LeastLikelySuccessorByBranchCounte [all...] |
H A D | loop_analyzer.h | 23 class BasicBlock; 28 Loop(ArenaAllocator *allocator, BasicBlock *header, uint32_t id) in Loop() 48 BasicBlock *GetHeader() const in GetHeader() 52 void SetPreHeader(BasicBlock *preHeader); 54 BasicBlock *GetPreHeader() const; 56 void AppendBackEdge(BasicBlock *block) in AppendBackEdge() 62 void ReplaceBackEdge(BasicBlock *block, BasicBlock *newBlock) in ReplaceBackEdge() 72 bool HasBackEdge(BasicBlock *block) const in HasBackEdge() 78 void RemoveBackEdge(BasicBlock *bloc [all...] |
H A D | rpo.h | 25 class BasicBlock; 48 void RemoveBasicBlock(BasicBlock *rmBlock) in RemoveBasicBlock() 57 void AddBasicBlockAfter(BasicBlock *curBlock, BasicBlock *newBlock) in AddBasicBlockAfter() 64 void AddBasicBlockBefore(BasicBlock *curBlock, BasicBlock *newBlock) in AddBasicBlockBefore() 71 void AddVectorAfter(BasicBlock *curBlock, const ArenaVector<BasicBlock *> &newVector) in AddVectorAfter() 78 const ArenaVector<BasicBlock *> &GetBlocks() const in GetBlocks() 86 void DFS(BasicBlock *bloc [all...] |
/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
H A D | if_merging.h | 48 bool TrySimplifyConstantPhi(BasicBlock *block); 49 bool TryRemoveConstantPhiIf(BasicBlock *ifBlock); 50 IfImmInst *GetIfImm(BasicBlock *block); 51 bool TryMergeEquivalentIfs(BasicBlock *bb); 53 bool MarkInstBranches(BasicBlock *bb, BasicBlock *trueBb, BasicBlock *falseBb); 54 std::optional<bool> GetUserBranch(Inst *userInst, BasicBlock *bb, BasicBlock *trueBb, BasicBlock *falseB [all...] |
H A D | licm_conditions.h | 28 ConditionChainContext(ConditionChain *chain, BasicBlock *multiplePredecessorsSuccessor, in ConditionChainContext() 29 BasicBlock *singlePredecessorSuccessor, bool hoistPhiAvailable) in ConditionChainContext() 42 BasicBlock *GetMultiplePredecessorsSuccessor() const in GetMultiplePredecessorsSuccessor() 47 BasicBlock *GetSinglePredecessorSuccessor() const in GetSinglePredecessorSuccessor() 52 void SetMultiplePredecessorsSuccessor(BasicBlock *multiplePredecessorsSuccessor) in SetMultiplePredecessorsSuccessor() 57 void SetSingleSPredecessorSuccessor(BasicBlock *singlePredecessorSuccessor) in SetSingleSPredecessorSuccessor() 69 BasicBlock *multiplePredecessorsSuccessor_; 70 BasicBlock *singlePredecessorSuccessor_; 100 static bool IsHoistPhiAvailable(const ConditionChain *chain, ArenaVector<BasicBlock *> &preds, 101 const BasicBlock *singlePredSuc [all...] |
H A D | try_catch_resolving.h | 50 BasicBlock *FindCatchBeginBlock(BasicBlock *bb); 53 void ConnectThrowCatchImpl(BasicBlock *catchBlock, BasicBlock *throwBlock, uint32_t catchPc, Inst *newObj, 55 void DeleteTryCatchEdges(BasicBlock *tryBegin, BasicBlock *tryEnd); 56 void RemoveCatchPhis(BasicBlock *cphisBlock, BasicBlock *catchBlock, Inst *throwInst, Inst *phiInst); 57 void RemoveCatchPhisImpl(CatchPhiInst *catchPhi, BasicBlock *catchBlock, Inst *throwInst); 60 ArenaVector<BasicBlock *> tryBlocks [all...] |
H A D | if_conversion.h | 23 class BasicBlock; 54 bool TryTriangle(BasicBlock *bb); 55 bool TryDiamond(BasicBlock *bb); 56 static bool LoopInvariantPreventConversion(BasicBlock *bb); 57 static bool IsConvertable(BasicBlock *bb, uint32_t *instCount); 58 bool IsPhisAllowed(BasicBlock *bb, BasicBlock *pred1, BasicBlock *pred2, uint32_t *phiCount); 60 uint32_t GetIfcLimit(BasicBlock *bb);
|
H A D | condition_chain.h | 46 using BlockIterator = ArenaVector<BasicBlock *>::iterator; 47 using BlockConstIterator = ArenaVector<BasicBlock *>::const_iterator; 58 BasicBlock *GetFirstBlock() in GetFirstBlock() 63 const BasicBlock *GetFirstBlock() const in GetFirstBlock() 68 BasicBlock *GetLastBlock() in GetLastBlock() 73 const BasicBlock *GetLastBlock() const in GetLastBlock() 103 bool Contains(const BasicBlock *bb) const in Contains() 109 void SetFirstBlock(BasicBlock *bb) in SetFirstBlock() 114 BasicBlock *GetMultiplePredecessorsSuccessor() const in GetMultiplePredecessorsSuccessor() 119 BasicBlock *GetSinglePredecessorSuccesso [all...] |
H A D | cleanup.h | 56 static bool SkipBasicBlock(BasicBlock *bb); 59 bool CanBeMerged(BasicBlock *bb); 61 bool RunOnce(ArenaSet<BasicBlock *> *emptyBlocks, ArenaSet<BasicBlock *> *newEmptyBlocks, bool simpleDce); 62 void RemoveDeadPhi(BasicBlock *bb, ArenaSet<BasicBlock *> *newEmptyBlocks); 63 bool ProcessBB(BasicBlock *bb, Marker deadMrk, ArenaSet<BasicBlock *> *newEmptyBlocks); 64 bool CheckSpecialTriangle(BasicBlock *bb); 75 bool Dce(Marker deadMrk, ArenaSet<BasicBlock *> *newEmptyBlock [all...] |
H A D | condition_chain_manager.h | 33 ConditionChain *FindConditionChain(BasicBlock *bb); 37 ConditionChain *TryConditionChain(BasicBlock *bb, BasicBlock *multiplePredsSucc, BasicBlock *chainBb); 38 bool IsConditionChainCandidate(const BasicBlock *bb); 40 ArenaVector<BasicBlock *> conditionChainBb_;
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
H A D | basicblock.cpp | 24 BasicBlock::BasicBlock(Graph *graph, uint32_t guestPc) in BasicBlock() function in ark::compiler::BasicBlock 33 void BasicBlock::SetId(uint32_t id) in SetId() 37 uint32_t BasicBlock::GetId() const in GetId() 42 ArenaVector<BasicBlock *> &BasicBlock::GetPredsBlocks() in GetPredsBlocks() 46 const ArenaVector<BasicBlock *> &BasicBlock::GetPredsBlocks() const in GetPredsBlocks() 51 BasicBlock::SuccsVector &BasicBlock [all...] |
H A D | graph_cloner.h | 26 class BasicBlock; 56 BasicBlock *header {nullptr}; 57 BasicBlock *backedge {nullptr}; 58 BasicBlock *exitBlock {nullptr}; 59 BasicBlock *outer {nullptr}; 60 ArenaVector<BasicBlock *> *blocks {nullptr}; 67 BasicBlock *outer {nullptr}; 68 BasicBlock *header {nullptr}; 69 BasicBlock *preHeader {nullptr}; 70 ArenaVector<BasicBlock *> *block [all...] |
/arkcompiler/runtime_core/compiler/optimizer/ir/ |
H A D | basicblock.cpp | 23 BasicBlock::BasicBlock(Graph *graph, uint32_t guest_pc) in BasicBlock() function in panda::compiler::BasicBlock 32 bool BasicBlock::IsStartBlock() const in IsStartBlock() 36 bool BasicBlock::IsEndBlock() const in IsEndBlock() 40 bool BasicBlock::IsPseudoControlFlowBlock() const in IsPseudoControlFlowBlock() 45 bool BasicBlock::IsLoopHeader() const in IsLoopHeader() 51 BasicBlock *BasicBlock::SplitBlockAfterInstruction(Inst *inst, bool make_edge) in SplitBlockAfterInstruction() 82 void BasicBlock::AddSucc(BasicBlock *suc [all...] |
H A D | graph_cloner.h | 25 class BasicBlock; 49 BasicBlock *header {nullptr}; 50 BasicBlock *backedge {nullptr}; 51 BasicBlock *exit_block {nullptr}; 52 BasicBlock *outer {nullptr}; 53 ArenaVector<BasicBlock *> *blocks {nullptr}; 59 BasicBlock *outer {nullptr}; 60 BasicBlock *header {nullptr}; 61 BasicBlock *pre_header {nullptr}; 62 ArenaVector<BasicBlock *> *block [all...] |
H A D | graph_checker.h | 55 void CheckBlock(BasicBlock *block); 60 void CheckControlFlow(BasicBlock *block); 61 void CheckDataFlow(BasicBlock *block); 63 void CheckInstsRegisters(BasicBlock *block); 64 void CheckPhisRegisters(BasicBlock *block); 65 void CheckNoLowLevel(BasicBlock *block); 75 bool CheckBlockHasPredecessor(BasicBlock *block, BasicBlock *predecessor); 76 bool CheckBlockHasSuccessor(BasicBlock *block, BasicBlock *successo [all...] |
/arkcompiler/runtime_core/libark_defect_scan_aux/include/ |
H A D | graph.h | 26 class BasicBlock; 48 BasicBlock GetBasicBlock() const; 61 // a wrapper class for compiler::BasicBlock 62 class BasicBlock { class 64 explicit BasicBlock(const compiler::BasicBlock *bb) : bb_(bb) {} in BasicBlock() function in panda::defect_scan_aux::BasicBlock 65 ~BasicBlock() = default; 67 bool operator==(const BasicBlock &bb) const; 68 bool operator!=(const BasicBlock &bb) const; 70 std::vector<BasicBlock> GetPredBlock [all...] |
/arkcompiler/runtime_core/libark_defect_scan_aux/ |
H A D | graph.cpp | 84 BasicBlock Inst::GetBasicBlock() const in GetBasicBlock() 86 return BasicBlock(inst_->GetBasicBlock()); in GetBasicBlock() 136 bool BasicBlock::operator==(const BasicBlock &bb) const in operator ==() 141 bool BasicBlock::operator!=(const BasicBlock &bb) const in operator !=() 146 Graph BasicBlock::GetGraph() const in GetGraph() 151 std::vector<BasicBlock> BasicBlock::GetPredBlocks() const in GetPredBlocks() 153 std::vector<BasicBlock> pred_block in GetPredBlocks() [all...] |
/arkcompiler/runtime_core/static_core/plugins/ets/compiler/optimizer/optimizations/interop_js/ |
H A D | interop_intrinsic_optimization.h | 66 const ArenaVector<BasicBlock *> &GetBlocksToVisit() const override 104 BlockInfo &GetInfo(BasicBlock *block); 105 void MergeScopesInsideBlock(BasicBlock *block); 106 bool TryCreateSingleScope(BasicBlock *bb); 109 bool IsForbiddenLoopEntry(BasicBlock *block); 115 void IterateBlockFromBoundary(BasicBlock *block); 117 void BlockBoundaryDfs(BasicBlock *block); 120 void FindComponentAndTryMerge(BasicBlock *block); 123 void DfsNumbering(BasicBlock *block); 124 void CalculateReachabilityRec(BasicBlock *bloc [all...] |
/arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
H A D | try_catch_resolving.h | 40 BasicBlock *TryFindResolvedCatchHandler(BasicBlock *try_begin, BasicBlock *try_end); 41 void DeleteTryCatchEdges(BasicBlock *try_begin, BasicBlock *try_end); 42 void ConnectCatchHandlerAfterThrow(BasicBlock *try_end, BasicBlock *catch_block); 43 void RemoveCatchPhis(BasicBlock *block, Inst *throw_inst); 45 bool DFS(BasicBlock *block, Marker marker, uint32_t try_id);
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/ir_builder/ |
H A D | ir_builder.h | 53 BasicBlock *beginBb {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 54 BasicBlock *endBb {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 56 ArenaVector<BasicBlock *> *basicBlocks {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 59 ArenaSet<BasicBlock *> *throwBlocks {nullptr}; // NOLINT(misc-non-private-member-variables-in-classes) 118 BasicBlock *GetBlockForPc(size_t pc) in GetBlockForPc() 123 BasicBlock *GetPrevBlockForPc(size_t pc) in GetPrevBlockForPc() 134 bool CreateSaveStateForLoopBlocks(BasicBlock *bb); 135 bool BuildBasicBlock(BasicBlock *bb, const uint8_t *instructionsBuf); 137 bool AddInstructionToBB(BasicBlock *bb, BytecodeInstruction &inst, size_t pc, bool *ssDeoptWasBuilded); 139 bool BuildInstructionsForBB(BasicBlock *b [all...] |