Home
last modified time | relevance | path

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

/arkcompiler/runtime_core/compiler/optimizer/analysis/
Dloop_analyzer.cpp137 void LoopAnalyzer::MovePhiInputsToPreHeader(BasicBlock *header, BasicBlock *pre_header, in MovePhiInputsToPreHeader() argument
148 pre_header->AppendPhi(new_phi); in MovePhiInputsToPreHeader()
153 void LoopAnalyzer::UpdateControlFlowWithPreHeader(BasicBlock *header, BasicBlock *pre_header, in UpdateControlFlowWithPreHeader() argument
160 edge->ReplaceSucc(header, pre_header); in UpdateControlFlowWithPreHeader()
163 pre_header->AddSucc(header); in UpdateControlFlowWithPreHeader()
167 edge->ReplaceSucc(header, pre_header); in UpdateControlFlowWithPreHeader()
168 header->ReplacePred(edge, pre_header); in UpdateControlFlowWithPreHeader()
172 GetGraph()->GetAnalysis<Rpo>().AddBasicBlockBefore(header, pre_header); in UpdateControlFlowWithPreHeader()
182 auto pre_header = header->CreateImmediateDominator(); in CreatePreHeader() local
183 pre_header->SetGuestPc(header->GetGuestPc()); in CreatePreHeader()
[all …]
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> &…
216 void UpdateControlFlowWithPreHeader(BasicBlock *header, BasicBlock *pre_header,
/arkcompiler/runtime_core/compiler/optimizer/ir/
Dgraph_cloner.cpp741 …oner::CreateNewOutsideSucc(BasicBlock *outside_succ, BasicBlock *back_edge, BasicBlock *pre_header) in CreateNewOutsideSucc() argument
744 auto pre_header_idx = outside_succ->GetPredBlockIndex(pre_header); in CreateNewOutsideSucc()
750 pre_header->ReplaceSucc(outside_succ, new_outside_succ); in CreateNewOutsideSucc()
755 new_phi->AppendInput(phi->CastToPhi()->GetPhiInput(pre_header)); in CreateNewOutsideSucc()
758 auto phi_pre_header_idx {phi->CastToPhi()->GetPredBlockIndex(pre_header)}; in CreateNewOutsideSucc()
777 auto pre_header = loop->GetPreHeader(); in PrepareLoopToClone() local
778 auto ifimm = pre_header->GetLastInst(); in PrepareLoopToClone()
791 auto new_pre_header = pre_header->SplitBlockAfterInstruction(compare->GetPrev(), true); in PrepareLoopToClone()
793 pre_header = new_pre_header; in PrepareLoopToClone()
796 …ASSERT(std::distance(pre_header->AllInsts().begin(), pre_header->AllInsts().end()) == PRE_HEADER_I… in PrepareLoopToClone()
[all …]
Dgraph_cloner.h61 BasicBlock *pre_header {nullptr};
163 …ock *CreateNewOutsideSucc(BasicBlock *outside_succ, BasicBlock *back_edge, BasicBlock *pre_header);
/arkcompiler/runtime_core/compiler/tests/
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()