| /arkcompiler/runtime_core/compiler/optimizer/analysis/ |
| D | dominators_tree.h | 23 class BasicBlock; variable 31 using BlocksVector = ArenaVector<BasicBlock *>; 46 static void SetDomPair(BasicBlock *dominator, BasicBlock *block); 48 …void UpdateAfterResolverInsertion(BasicBlock *predecessor, BasicBlock *successor, BasicBlock *reso… 54 void SetAncestor(BasicBlock *dest, BasicBlock *block) in SetAncestor() 58 BasicBlock *GetAncestor(BasicBlock *block) const in GetAncestor() 66 BlocksVector &GetBucket(BasicBlock *block) in GetBucket() 74 void SetIdom(BasicBlock *dest, BasicBlock *block) in SetIdom() 78 BasicBlock *GetIdom(BasicBlock *block) const in GetIdom() 86 void SetLabel(BasicBlock *dest, BasicBlock *block) in SetLabel() [all …]
|
| D | loop_analyzer.h | 23 class BasicBlock; variable 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 *block) in RemoveBackEdge() 95 const ArenaVector<BasicBlock *> &GetBackEdges() const in GetBackEdges() [all …]
|
| D | linear_order.h | 24 class BasicBlock; variable 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 *block, size_t *blocks_count); 70 ArenaVector<BasicBlock *> linear_blocks_; 71 ArenaList<BasicBlock *> rpo_blocks_; 72 ArenaVector<BasicBlock *> reordered_blocks_;
|
| D | rpo.h | 25 class BasicBlock; variable 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 *block, size_t *blocks_count); 90 ArenaVector<BasicBlock *> rpo_vector_;
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/analysis/ |
| D | dominators_tree.h | 23 class BasicBlock; variable 29 using BlocksVector = ArenaVector<BasicBlock *>; 44 static void SetDomPair(BasicBlock *dominator, BasicBlock *block); 46 …void UpdateAfterResolverInsertion(BasicBlock *predecessor, BasicBlock *successor, BasicBlock *reso… 52 void SetAncestor(BasicBlock *dest, BasicBlock *block) in SetAncestor() 56 BasicBlock *GetAncestor(BasicBlock *block) const in GetAncestor() 64 BlocksVector &GetBucket(BasicBlock *block) in GetBucket() 72 void SetIdom(BasicBlock *dest, BasicBlock *block) in SetIdom() 76 BasicBlock *GetIdom(BasicBlock *block) const in GetIdom() 84 void SetLabel(BasicBlock *dest, BasicBlock *block) in SetLabel() [all …]
|
| D | linear_order.h | 24 class BasicBlock; variable 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); 65 BasicBlock *LeastLikelySuccessor(const BasicBlock *block); 66 BasicBlock *LeastLikelySuccessorByBranchCounter(const BasicBlock *block); 67 BasicBlock *LeastLikelySuccessorByPreference(const BasicBlock *block); 70 int64_t GetBranchCounter(const BasicBlock *block, bool trueSucc); 71 bool IsConditionChainCounter(const BasicBlock *block); [all …]
|
| D | loop_analyzer.h | 23 class BasicBlock; variable 28 Loop(ArenaAllocator *allocator, BasicBlock *header, uint32_t id) in Loop() 48 BasicBlock *GetHeader() const in GetHeader() 52 void SetPreHeader(BasicBlock *preHeader) in SetPreHeader() 57 BasicBlock *GetPreHeader() const in GetPreHeader() 61 void AppendBackEdge(BasicBlock *block) in AppendBackEdge() 67 void ReplaceBackEdge(BasicBlock *block, BasicBlock *newBlock) in ReplaceBackEdge() 77 bool HasBackEdge(BasicBlock *block) const in HasBackEdge() 83 void RemoveBackEdge(BasicBlock *block) in RemoveBackEdge() 94 const ArenaVector<BasicBlock *> &GetBackEdges() const in GetBackEdges() [all …]
|
| D | rpo.h | 25 class BasicBlock; variable 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 *block, size_t *blocksCount); 90 ArenaVector<BasicBlock *> rpoVector_;
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
| 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 *… 55 bool IsDominateEdge(BasicBlock *edgeBb, BasicBlock *targetBb); 56 void SplitBlockWithEquivalentIf(BasicBlock *bb, BasicBlock *trueBb, bool invertedIf); 57 …void SplitBlockWithConstantPhi(BasicBlock *bb, BasicBlock *trueBb, PhiInst *phi, uint64_t constant, 59 BasicBlock *SplitBlock(BasicBlock *bb); [all …]
|
| 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 *singlePredSucc); [all …]
|
| D | try_catch_resolving.h | 49 BasicBlock *FindCatchBeginBlock(BasicBlock *bb); 52 …void ConnectThrowCatchImpl(BasicBlock *catchBlock, BasicBlock *throwBlock, uint32_t catchPc, Inst … 54 void DeleteTryCatchEdges(BasicBlock *tryBegin, BasicBlock *tryEnd); 55 …void RemoveCatchPhis(BasicBlock *cphisBlock, BasicBlock *catchBlock, Inst *throwInst, Inst *phiIns… 56 void RemoveCatchPhisImpl(CatchPhiInst *catchPhi, BasicBlock *catchBlock, Inst *throwInst); 60 ArenaVector<BasicBlock *> tryBlocks_; 62 ArenaMap<uint32_t, BasicBlock *> catchBlocks_; 65 ArenaMap<BasicBlock *, BasicBlock *> catch2cphis_;
|
| D | if_conversion.h | 23 class BasicBlock; variable 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);
|
| 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 *GetSinglePredecessorSuccessor() const in GetSinglePredecessorSuccessor()
|
| D | condition_chain_manager.h | 33 ConditionChain *FindConditionChain(BasicBlock *bb); 37 …ConditionChain *TryConditionChain(BasicBlock *bb, BasicBlock *multiplePredsSucc, BasicBlock *chain… 38 bool IsConditionChainCandidate(const BasicBlock *bb); 40 ArenaVector<BasicBlock *> conditionChainBb_;
|
| /arkcompiler/runtime_core/static_core/plugins/ets/compiler/optimizer/optimizations/interop_js/ |
| D | interop_intrinsic_optimization.h | 66 const ArenaVector<BasicBlock *> &GetBlocksToVisit() const override in GetBlocksToVisit() 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 *block); [all …]
|
| /arkcompiler/runtime_core/compiler/optimizer/ir/ |
| D | graph_cloner.h | 25 class BasicBlock; variable 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 *> *blocks {nullptr}; [all …]
|
| D | basicblock.cpp | 24 BasicBlock::BasicBlock(Graph *graph, uint32_t guest_pc) in BasicBlock() function in panda::compiler::BasicBlock 33 bool BasicBlock::IsStartBlock() const in IsStartBlock() 37 bool BasicBlock::IsEndBlock() const in IsEndBlock() 41 bool BasicBlock::IsPseudoControlFlowBlock() const in IsPseudoControlFlowBlock() 46 bool BasicBlock::IsLoopHeader() const in IsLoopHeader() 52 BasicBlock *BasicBlock::SplitBlockAfterInstruction(Inst *inst, bool make_edge) in SplitBlockAfterInstruction() 83 void BasicBlock::AddSucc(BasicBlock *succ, bool can_add_empty_block) in AddSucc() 97 void BasicBlock::ReplaceSucc(const BasicBlock *prev_succ, BasicBlock *new_succ, bool can_add_empty_… in ReplaceSucc() 111 BasicBlock *BasicBlock::InsertNewBlockToSuccEdge(BasicBlock *succ) in InsertNewBlockToSuccEdge() 119 BasicBlock *BasicBlock::InsertEmptyBlockBefore() in InsertEmptyBlockBefore() [all …]
|
| 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 *successor); 78 void CheckBlockEdges(const BasicBlock &block); 79 void CheckTryBeginBlock(const BasicBlock &block); [all …]
|
| /arkcompiler/runtime_core/libark_defect_scan_aux/include/ |
| D | graph.h | 26 class BasicBlock; variable 48 BasicBlock GetBasicBlock() const; 62 class BasicBlock { 64 explicit BasicBlock(const compiler::BasicBlock *bb) : bb_(bb) {} in BasicBlock() function 65 ~BasicBlock() = default; 67 bool operator==(const BasicBlock &bb) const; 68 bool operator!=(const BasicBlock &bb) const; 70 std::vector<BasicBlock> GetPredBlocks() const; 71 std::vector<BasicBlock> GetSuccBlocks() const; 75 const compiler::BasicBlock *bb_ {nullptr}; [all …]
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
| D | graph_cloner.h | 26 class BasicBlock; variable 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 *> *blocks {nullptr}; [all …]
|
| D | basicblock.cpp | 24 BasicBlock::BasicBlock(Graph *graph, uint32_t guestPc) in BasicBlock() function in panda::compiler::BasicBlock 33 bool BasicBlock::IsStartBlock() const in IsStartBlock() 37 bool BasicBlock::IsEndBlock() const in IsEndBlock() 41 bool BasicBlock::IsPseudoControlFlowBlock() const in IsPseudoControlFlowBlock() 46 bool BasicBlock::IsLoopHeader() const in IsLoopHeader() 52 BasicBlock *BasicBlock::SplitBlockAfterInstruction(Inst *inst, bool makeEdge) in SplitBlockAfterInstruction() 84 void BasicBlock::AddSucc(BasicBlock *succ, bool canAddEmptyBlock) in AddSucc() 98 void BasicBlock::ReplaceSucc(const BasicBlock *prevSucc, BasicBlock *newSucc, bool canAddEmptyBlock) in ReplaceSucc() 112 BasicBlock *BasicBlock::InsertNewBlockToSuccEdge(BasicBlock *succ) in InsertNewBlockToSuccEdge() 120 BasicBlock *BasicBlock::InsertEmptyBlockBefore() in InsertEmptyBlockBefore() [all …]
|
| D | basicblock.h | 61 class BasicBlock : public MarkerSet { // , public ArenaObject<ARENA_ALLOC_BASIC_BLOCK> 65 explicit BasicBlock(Graph *graph, uint32_t guestPc = INVALID_PC); 77 ArenaVector<BasicBlock *> &GetPredsBlocks() in GetPredsBlocks() 81 const ArenaVector<BasicBlock *> &GetPredsBlocks() const in GetPredsBlocks() 86 ArenaVector<BasicBlock *> &GetSuccsBlocks() in GetSuccsBlocks() 90 const ArenaVector<BasicBlock *> &GetSuccsBlocks() const in GetSuccsBlocks() 95 BasicBlock *GetSuccessor(size_t index) const in GetSuccessor() 101 BasicBlock *GetPredecessor(size_t index) const in GetPredecessor() 126 BasicBlock *GetTrueSuccessor() const in GetTrueSuccessor() 132 BasicBlock *GetFalseSuccessor() const in GetFalseSuccessor() [all …]
|
| D | analysis.h | 31 bool HasOsrEntryBetween(BasicBlock *dominateBb, BasicBlock *bb); 36 bool CheckObjectRec(Inst *object, const Inst *user, const BasicBlock *block, Inst *startFrom, Marke… 38 std::optional<bool> IsIfInverted(BasicBlock *phiBlock, IfImmInst *ifImm); 66 … Inst *stopSearch = nullptr, BasicBlock *targetBlock = nullptr); 69 BasicBlock *targetBlock = nullptr); 71 void FixSaveStatesInBB(BasicBlock *block); 72 void FixPhisWithCheckInputs(BasicBlock *block); 76 void SearchSSOnWay(BasicBlock *block, Inst *startFrom, Inst *sourceInst, Marker visited, 81 void FixUsageInstInOtherBB(BasicBlock *block, Inst *inst); 82 void FixUsagePhiInBB(BasicBlock *block, Inst *inst); [all …]
|
| /arkcompiler/runtime_core/libark_defect_scan_aux/ |
| 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_blocks; in GetPredBlocks() 160 std::vector<BasicBlock> BasicBlock::GetSuccBlocks() const in GetSuccBlocks() 162 std::vector<BasicBlock> succ_blocks; in GetSuccBlocks() 169 std::vector<Inst> BasicBlock::GetInstList() const in GetInstList() [all …]
|
| /arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
| 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);
|