Skip to content

Commit 4d862c3

Browse files
mtrofincopybara-github
authored andcommitted
const-ify mutual_exclusivity, because Resource Sharing doesn't mutate it.
PiperOrigin-RevId: 896081108
1 parent 74e6fcb commit 4d862c3

2 files changed

Lines changed: 26 additions & 23 deletions

File tree

xls/passes/resource_sharing_pass.cc

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -577,9 +577,10 @@ absl::StatusOr<double> EstimateAreaForNegatingNode(Node* n,
577577
// into a single n-ary folding on the same destination. Note that binary
578578
// foldings are sorted by benefit (e.g maximizing area savings) in descending
579579
// order, meaning 'previous' is more important than 'next'.
580-
bool CanFoldTogether(absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
581-
mutual_exclusivity,
582-
BinaryFoldingAction* next, BinaryFoldingAction* previous) {
580+
bool CanFoldTogether(
581+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
582+
mutual_exclusivity,
583+
BinaryFoldingAction* next, BinaryFoldingAction* previous) {
583584
if (previous->GetTo() != next->GetTo()) {
584585
return false;
585586
}
@@ -726,7 +727,7 @@ absl::StatusOr<NaryFoldEstimate> SelectSubsetOfFolds(
726727
absl::StatusOr<std::vector<std::unique_ptr<NaryFoldingAction>>>
727728
ListOfAllFoldingActionsWithDestination(
728729
Node* n, FoldingGraph* folding_graph,
729-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
730+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
730731
mutual_exclusivity,
731732
const ResourceSharingPass::VisibilityAnalyses& visibility,
732733
const AreaEstimator& area_estimator,
@@ -818,7 +819,7 @@ ListOfAllFoldingActionsWithDestination(
818819
absl::StatusOr<std::vector<std::unique_ptr<NaryFoldingAction>>>
819820
ListOfFoldingActionsWithDestination(
820821
Node* n, FoldingGraph* folding_graph,
821-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
822+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
822823
mutual_exclusivity,
823824
const ResourceSharingPass::VisibilityAnalyses& visibility,
824825
const AreaEstimator& area_estimator,
@@ -975,7 +976,7 @@ absl::StatusOr<std::pair<std::vector<std::unique_ptr<NaryFoldingAction>>, bool>>
975976
ResourceSharingPass::LegalizeSequenceOfFolding(
976977
absl::Span<const std::unique_ptr<NaryFoldingAction>>
977978
potential_folding_actions_to_perform,
978-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
979+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
979980
mutual_exclusivity,
980981
const NodeBackwardDependencyAnalysis& nda,
981982
std::optional<const AreaEstimator*> area_estimator,
@@ -1339,7 +1340,7 @@ void SortNodesInDescendingOrderOfTheirInDegree(std::vector<Node*>& nodes,
13391340
absl::StatusOr<std::vector<std::unique_ptr<NaryFoldingAction>>>
13401341
SelectFoldingActionsBasedOnInDegree(
13411342
OptimizationContext& context, FoldingGraph* folding_graph,
1342-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
1343+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
13431344
mutual_exclusivity,
13441345
const ResourceSharingPass::VisibilityAnalyses& visibility,
13451346
const NodeBackwardDependencyAnalysis& nda,
@@ -1457,7 +1458,7 @@ SelectFoldingActionsBasedOnInDegree(
14571458
absl::StatusOr<std::vector<std::unique_ptr<NaryFoldingAction>>>
14581459
SelectAllFoldingActions(
14591460
OptimizationContext& context, FoldingGraph* folding_graph,
1460-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
1461+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
14611462
mutual_exclusivity,
14621463
const ResourceSharingPass::VisibilityAnalyses& visibility,
14631464
const NodeBackwardDependencyAnalysis& nda,
@@ -1540,7 +1541,7 @@ SelectAllFoldingActions(
15401541
absl::StatusOr<std::vector<std::unique_ptr<NaryFoldingAction>>>
15411542
SelectRandomlyFoldingActions(
15421543
FoldingGraph* folding_graph,
1543-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
1544+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
15441545
mutual_exclusivity,
15451546
const ResourceSharingPass::Config& config,
15461547
const ResourceSharingPass::VisibilityAnalyses& visibility) {
@@ -1606,16 +1607,17 @@ SelectRandomlyFoldingActions(
16061607
// their total order to perform them.
16071608
// This is part of the profitability guard of the resource sharing pass.
16081609
absl::StatusOr<std::vector<std::unique_ptr<NaryFoldingAction>>>
1609-
SelectFoldingActions(OptimizationContext& context, FoldingGraph* folding_graph,
1610-
ResourceSharingPass::ProfitabilityGuard heuristics,
1611-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
1612-
mutual_exclusivity,
1613-
const ResourceSharingPass::VisibilityAnalyses& visibility,
1614-
const NodeBackwardDependencyAnalysis& nda,
1615-
const AreaEstimator& area_estimator,
1616-
const CriticalPathDelayAnalysis& critical_path_delay,
1617-
const ResourceSharingPass::Config& config,
1618-
VisibilityEstimator* visibility_estimator) {
1610+
SelectFoldingActions(
1611+
OptimizationContext& context, FoldingGraph* folding_graph,
1612+
ResourceSharingPass::ProfitabilityGuard heuristics,
1613+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
1614+
mutual_exclusivity,
1615+
const ResourceSharingPass::VisibilityAnalyses& visibility,
1616+
const NodeBackwardDependencyAnalysis& nda,
1617+
const AreaEstimator& area_estimator,
1618+
const CriticalPathDelayAnalysis& critical_path_delay,
1619+
const ResourceSharingPass::Config& config,
1620+
VisibilityEstimator* visibility_estimator) {
16191621
std::vector<std::unique_ptr<NaryFoldingAction>> folding_actions_to_perform;
16201622
VLOG(3) << "Choosing the best folding actions";
16211623

@@ -1696,7 +1698,7 @@ SelectFoldingActions(OptimizationContext& context, FoldingGraph* folding_graph,
16961698
absl::StatusOr<std::vector<std::unique_ptr<NaryFoldingAction>>>
16971699
ResourceSharingPass::SelectFoldingActions(
16981700
OptimizationContext& context, FoldingGraph* folding_graph,
1699-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
1701+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
17001702
mutual_exclusivity,
17011703
const VisibilityAnalyses& visibility,
17021704
const NodeBackwardDependencyAnalysis& nda,

xls/passes/resource_sharing_pass.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,10 +297,11 @@ class ResourceSharingPass : public OptimizationFunctionBasePass {
297297
LegalizeSequenceOfFolding(
298298
absl::Span<const std::unique_ptr<NaryFoldingAction>>
299299
potential_folding_actions_to_perform,
300-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
300+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
301301
mutual_exclusivity,
302302
const NodeBackwardDependencyAnalysis& nda,
303-
std::optional<const AreaEstimator*> area_estimator, const Config& config);
303+
std::optional<const AreaEstimator*> area_estimator,
304+
const ResourceSharingPass::Config& config);
304305

305306
// This function performs the folding actions specified in its input following
306307
// the order specified.
@@ -366,7 +367,7 @@ class ResourceSharingPass : public OptimizationFunctionBasePass {
366367
virtual absl::StatusOr<std::vector<std::unique_ptr<NaryFoldingAction>>>
367368
SelectFoldingActions(
368369
OptimizationContext& context, FoldingGraph* folding_graph,
369-
absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
370+
const absl::flat_hash_set<ResourceSharingPass::MutuallyExclPair>&
370371
mutual_exclusivity,
371372
const VisibilityAnalyses& visibility,
372373
const NodeBackwardDependencyAnalysis& nda,

0 commit comments

Comments
 (0)