Lines Matching refs:LSEVisitor
331 class LSEVisitor final : private HGraphDelegateVisitor { class
333 LSEVisitor(HGraph* graph,
1308 friend std::ostream& operator<<(std::ostream& oss, const LSEVisitor::Phase& phase);
1310 DISALLOW_COPY_AND_ASSIGN(LSEVisitor);
1313 std::ostream& operator<<(std::ostream& oss, const LSEVisitor::PriorValueHolder& p) { in operator <<()
1318 std::ostream& operator<<(std::ostream& oss, const LSEVisitor::Phase& phase) { in operator <<()
1320 case LSEVisitor::Phase::kLoadElimination: in operator <<()
1322 case LSEVisitor::Phase::kStoreElimination: in operator <<()
1324 case LSEVisitor::Phase::kPartialElimination: in operator <<()
1329 void LSEVisitor::PriorValueHolder::Dump(std::ostream& oss) const { in Dump()
1339 constexpr LSEVisitor::PriorValueHolder::PriorValueHolder(Value val) in PriorValueHolder()
1353 constexpr bool operator==(const LSEVisitor::Marker&, const LSEVisitor::Marker&) { in operator ==()
1357 constexpr bool operator==(const LSEVisitor::PriorValueHolder& p1, in operator ==()
1358 const LSEVisitor::PriorValueHolder& p2) { in operator ==()
1362 constexpr bool operator==(const LSEVisitor::PhiPlaceholder& p1, in operator ==()
1363 const LSEVisitor::PhiPlaceholder& p2) { in operator ==()
1367 constexpr bool operator==(const LSEVisitor::Value::NeedsLoopPhiMarker& p1, in operator ==()
1368 const LSEVisitor::Value::NeedsLoopPhiMarker& p2) { in operator ==()
1372 constexpr bool operator==(const LSEVisitor::Value::NeedsNonLoopPhiMarker& p1, in operator ==()
1373 const LSEVisitor::Value::NeedsNonLoopPhiMarker& p2) { in operator ==()
1377 constexpr bool operator==(const LSEVisitor::Value::MergedUnknownMarker& p1, in operator ==()
1378 const LSEVisitor::Value::MergedUnknownMarker& p2) { in operator ==()
1382 std::ostream& operator<<(std::ostream& oss, const LSEVisitor::PhiPlaceholder& p) { in operator <<()
1387 LSEVisitor::Value LSEVisitor::PriorValueHolder::ToValue() const { in ToValue()
1397 constexpr bool LSEVisitor::Value::ExactEquals(LSEVisitor::Value other) const { in ExactEquals()
1401 constexpr bool LSEVisitor::Value::Equals(LSEVisitor::Value other) const { in Equals()
1415 std::ostream& LSEVisitor::Value::Dump(std::ostream& os) const { in Dump()
1416 if (std::holds_alternative<LSEVisitor::Value::ValuelessType>(value_)) { in Dump()
1443 std::ostream& operator<<(std::ostream& os, const LSEVisitor::Value& v) { in operator <<()
1447 LSEVisitor::LSEVisitor(HGraph* graph, in LSEVisitor() function in art::LSEVisitor
1495 LSEVisitor::Value LSEVisitor::PrepareLoopValue(HBasicBlock* block, size_t idx) { in PrepareLoopValue()
1527 LSEVisitor::Value LSEVisitor::PrepareLoopStoredBy(HBasicBlock* block, size_t idx) { in PrepareLoopStoredBy()
1540 void LSEVisitor::PrepareLoopRecords(HBasicBlock* block) { in PrepareLoopRecords()
1573 LSEVisitor::Value LSEVisitor::MergePredecessorValues(HBasicBlock* block, size_t idx) { in MergePredecessorValues()
1605 void LSEVisitor::MergePredecessorRecords(HBasicBlock* block) { in MergePredecessorRecords()
1683 void LSEVisitor::MaterializeNonLoopPhis(PhiPlaceholder phi_placeholder, DataType::Type type) { in MaterializeNonLoopPhis()
1744 void LSEVisitor::VisitGetLocation(HInstruction* instruction, size_t idx) { in VisitGetLocation()
1792 void LSEVisitor::VisitSetLocation(HInstruction* instruction, size_t idx, HInstruction* value) { in VisitSetLocation()
1860 void LSEVisitor::VisitBasicBlock(HBasicBlock* block) { in VisitBasicBlock()
1872 bool LSEVisitor::MayAliasOnBackEdge(HBasicBlock* loop_header, size_t idx1, size_t idx2) const { in MayAliasOnBackEdge()
1900 bool LSEVisitor::TryReplacingLoopPhiPlaceholderWithDefault( in TryReplacingLoopPhiPlaceholderWithDefault()
1985 bool LSEVisitor::TryReplacingLoopPhiPlaceholderWithSingleInput( in TryReplacingLoopPhiPlaceholderWithSingleInput()
2042 std::optional<LSEVisitor::PhiPlaceholder> LSEVisitor::FindLoopPhisToMaterialize( in FindLoopPhisToMaterialize()
2137 bool LSEVisitor::MaterializeLoopPhis(const ScopedArenaVector<size_t>& phi_placeholder_indexes, in MaterializeLoopPhis()
2142 bool LSEVisitor::MaterializeLoopPhis(ArrayRef<const size_t> phi_placeholder_indexes, in MaterializeLoopPhis()
2272 bool LSEVisitor::MaterializeLoopPhis(const ArenaBitVector& phi_placeholders_to_materialize, in MaterializeLoopPhis()
2383 bool LSEVisitor::FullyMaterializePhi(PhiPlaceholder phi_placeholder, DataType::Type type) { in FullyMaterializePhi()
2392 std::optional<LSEVisitor::PhiPlaceholder> LSEVisitor::TryToMaterializeLoopPhis( in TryToMaterializeLoopPhis()
2429 void LSEVisitor::ProcessLoopPhiWithUnknownInput(PhiPlaceholder loop_phi_with_unknown_input) { in ProcessLoopPhiWithUnknownInput()
2575 void LSEVisitor::ProcessLoadsRequiringLoopPhis() { in ProcessLoadsRequiringLoopPhis()
2614 void LSEVisitor::SearchPhiPlaceholdersForKeptStores() { in SearchPhiPlaceholdersForKeptStores()
2692 void LSEVisitor::UpdateValueRecordForStoreElimination(/*inout*/ValueRecord* value_record) { in UpdateValueRecordForStoreElimination()
2714 void LSEVisitor::FindOldValueForPhiPlaceholder(PhiPlaceholder phi_placeholder, in FindOldValueForPhiPlaceholder()
2756 ScopedArenaVector<ScopedArenaVector<LSEVisitor::ValueRecord>>& to_restore) in ScopedRestoreHeapValues()
2773 LSEVisitor::ValueRecord* vr = &to_restore_[blk_id][heap_loc]; in ForEachRecord()
2774 LSEVisitor::Value initial = vr->value; in ForEachRecord()
2787 LSEVisitor::Value val_;
2791 ScopedArenaVector<ScopedArenaVector<LSEVisitor::ValueRecord>>& to_restore_;
2796 void LSEVisitor::FindStoresWritingOldValues() { in FindStoresWritingOldValues()
2859 void LSEVisitor::Run() { in Run()
2887 void LSEVisitor::PrepareForPartialPhiComputation() { in PrepareForPartialPhiComputation()
2897 PartialLoadStoreEliminationHelper(LSEVisitor* lse, ScopedArenaAllocator* alloc) in PartialLoadStoreEliminationHelper()
3598 LSEVisitor* lse_;
3610 friend void LSEVisitor::MovePartialEscapes();
3617 HInstruction* LSEVisitor::SetupPartialMaterialization(PartialLoadStoreEliminationHelper& helper, in SetupPartialMaterialization()
3690 HInstruction* LSEVisitor::GetPartialValueAt(HNewInstance* orig_new_inst, HInstruction* read) { in GetPartialValueAt()
3712 void LSEVisitor::MovePartialEscapes() { in MovePartialEscapes()
3809 void LSEVisitor::FinishFullLSE() { in FinishFullLSE()
3871 LSEVisitor lse_visitor_;