[ModuleInliner] Factor out common code in InlineOrder.cpp (NFC)
This patch factors out common code in InlineOrder.cpp. Without this patch, the model is to ask classes like SizePriority and CostPriority to compare a pair of call sites: bool hasLowerPriority(const CallBase *L, const CallBase *R) const override { while these priority classes have their own caches of priorities: DenseMap<const CallBase *, PriorityT> Priorities; This model results in a lot of duplicate code like hasLowerPriority and updateAndCheckDecreased. This patch changes the model so that priority classes just have two methods to compute a priority for a given call site and to compare two previously computed priorities (as opposed to call sites). Facilities like hasLowerPriority and updateAndCheckDecreased move to PriorityInlineOrder along with the map from call sites to their priorities. PriorityInlineOrder becomes a template class so that it can accommodate different priority classes. Differential Revision: https://reviews.llvm.org/D134149
Loading
Please sign in to comment