forked from OSchip/llvm-project
0a0ccc85bb
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 |
||
---|---|---|
.. | ||
benchmarks | ||
bindings | ||
cmake | ||
docs | ||
examples | ||
include | ||
lib | ||
projects | ||
resources | ||
runtimes | ||
test | ||
tools | ||
unittests | ||
utils | ||
.clang-format | ||
.clang-tidy | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
CODE_OWNERS.TXT | ||
CREDITS.TXT | ||
LICENSE.TXT | ||
README.txt | ||
RELEASE_TESTERS.TXT | ||
configure | ||
llvm.spec.in |
README.txt
The LLVM Compiler Infrastructure ================================ This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments. LLVM is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt. Please see the documentation provided in docs/ for further assistance with LLVM, and in particular docs/GettingStarted.rst for getting started with LLVM and docs/README.txt for an overview of LLVM's documentation setup. If you are writing a package for LLVM, see docs/Packaging.rst for our suggestions.