Searched refs:pre_header (Results 1 – 5 of 5) sorted by relevance
/arkcompiler/runtime_core/compiler/optimizer/analysis/ |
D | loop_analyzer.cpp | 137 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 …]
|
D | loop_analyzer.h | 53 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/ |
D | graph_cloner.cpp | 741 …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 …]
|
D | graph_cloner.h | 61 BasicBlock *pre_header {nullptr}; 163 …ock *CreateNewOutsideSucc(BasicBlock *outside_succ, BasicBlock *back_edge, BasicBlock *pre_header);
|
/arkcompiler/runtime_core/compiler/tests/ |
D | loop_analyzer_test.cpp | 303 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()
|