Home
last modified time | relevance | path

Searched refs:pre_header (Results 1 - 5 of 5) sorted by relevance

/arkcompiler/runtime_core/compiler/optimizer/analysis/
H A Dloop_analyzer.cpp138 void LoopAnalyzer::MovePhiInputsToPreHeader(BasicBlock *header, BasicBlock *pre_header, in MovePhiInputsToPreHeader() argument
149 pre_header->AppendPhi(new_phi); in MovePhiInputsToPreHeader()
154 void LoopAnalyzer::UpdateControlFlowWithPreHeader(BasicBlock *header, BasicBlock *pre_header, in UpdateControlFlowWithPreHeader() argument
161 edge->ReplaceSucc(header, pre_header); in UpdateControlFlowWithPreHeader()
164 pre_header->AddSucc(header); in UpdateControlFlowWithPreHeader()
168 edge->ReplaceSucc(header, pre_header); in UpdateControlFlowWithPreHeader()
169 header->ReplacePred(edge, pre_header); in UpdateControlFlowWithPreHeader()
173 GetGraph()->GetAnalysis<Rpo>().AddBasicBlockBefore(header, pre_header); in UpdateControlFlowWithPreHeader()
183 auto pre_header = header->CreateImmediateDominator(); in CreatePreHeader() local
184 pre_header in CreatePreHeader()
212 BasicBlock *pre_header = nullptr; FindAndInsertPreHeaders() local
[all...]
H A Dloop_analyzer.h53 void SetPreHeader(BasicBlock *pre_header) in SetPreHeader() argument
55 pre_header_ = pre_header; in SetPreHeader()
215 void MovePhiInputsToPreHeader(BasicBlock *header, BasicBlock *pre_header, const ArenaVector<int> &fw_edges_indexes);
216 void UpdateControlFlowWithPreHeader(BasicBlock *header, BasicBlock *pre_header,
/arkcompiler/runtime_core/compiler/optimizer/ir/
H A Dgraph_cloner.cpp744 BasicBlock *GraphCloner::CreateNewOutsideSucc(BasicBlock *outside_succ, BasicBlock *back_edge, BasicBlock *pre_header) in CreateNewOutsideSucc() argument
747 auto pre_header_idx = outside_succ->GetPredBlockIndex(pre_header); in CreateNewOutsideSucc()
753 pre_header->ReplaceSucc(outside_succ, new_outside_succ); in CreateNewOutsideSucc()
758 new_phi->AppendInput(phi->CastToPhi()->GetPhiInput(pre_header)); in CreateNewOutsideSucc()
761 auto phi_pre_header_idx {phi->CastToPhi()->GetPredBlockIndex(pre_header)}; in CreateNewOutsideSucc()
780 auto pre_header = loop->GetPreHeader(); in PrepareLoopToClone() local
781 auto ifimm = pre_header->GetLastInst(); in PrepareLoopToClone()
794 auto new_pre_header = pre_header->SplitBlockAfterInstruction(compare->GetPrev(), true); in PrepareLoopToClone()
796 pre_header = new_pre_header; in PrepareLoopToClone()
799 ASSERT(std::distance(pre_header in PrepareLoopToClone()
827 CreateLoopClonerData(Loop *loop, BasicBlock *pre_header, BasicBlock *outside_succ) CreateLoopClonerData() argument
909 GetPhiResolver(Inst *check_phi, BasicBlock *outside_succ, BasicBlock *pre_header) GetPhiResolver() argument
999 auto pre_header = loop->GetPreHeader(); IsLoopClonable() local
[all...]
H A Dgraph_cloner.h61 BasicBlock *pre_header {nullptr};
163 LoopClonerData *CreateLoopClonerData(Loop *loop, BasicBlock *pre_header, BasicBlock *outside_succ);
164 BasicBlock *CreateNewOutsideSucc(BasicBlock *outside_succ, BasicBlock *back_edge, BasicBlock *pre_header);
/arkcompiler/runtime_core/compiler/tests/
H A Dloop_analyzer_test.cpp303 auto pre_header = loop->GetPreHeader(); in TEST_F() local
304 ASSERT_EQ(pre_header->GetLoop(), loop->GetOuterLoop()); in TEST_F()
305 CheckVectorEqualBlocksIdSet(pre_header->GetPredsBlocks(), {4, 5}); in TEST_F()
306 CheckVectorEqualBlocksIdSet(pre_header->GetSuccsBlocks(), {6}); in TEST_F()
307 EXPECT_EQ(loop->GetHeader()->GetDominator(), pre_header); in TEST_F()
308 CheckVectorEqualBlocksIdSet(pre_header->GetDominatedBlocks(), {6}); in TEST_F()
311 CheckPhiInputs(pre_header); in TEST_F()

Completed in 4 milliseconds