Home
last modified time | relevance | path

Searched refs:BasicBlock (Results 1 – 25 of 219) sorted by relevance

123456789

/arkcompiler/runtime_core/compiler/optimizer/analysis/
Ddominators_tree.h23 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 …]
Dloop_analyzer.h23 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 …]
Dlinear_order.h24 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_;
Drpo.h25 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/
Ddominators_tree.h23 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 …]
Dlinear_order.h24 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 …]
Dloop_analyzer.h23 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 …]
Drpo.h25 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/
Dif_merging.h48 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 …]
Dlicm_conditions.h28 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 …]
Dtry_catch_resolving.h49 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_;
Dif_conversion.h23 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);
Dcondition_chain.h46 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()
Dcondition_chain_manager.h33 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/
Dinterop_intrinsic_optimization.h66 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/
Dgraph_cloner.h25 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 …]
Dbasicblock.cpp24 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 …]
Dgraph_checker.h55 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/
Dgraph.h26 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/
Dgraph_cloner.h26 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 …]
Dbasicblock.cpp24 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 …]
Dbasicblock.h61 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 …]
Danalysis.h31 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/
Dgraph.cpp84 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/
Dtry_catch_resolving.h40 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);

123456789