[PATCH] D31085: [InlineCost] Increase the cost of Switch
Haicheng Wu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 20 06:37:42 PDT 2017
haicheng added inline comments.
================
Comment at: lib/Analysis/InlineCost.cpp:1051
+
+ while (!SwitchWorkList.empty()) {
+ unsigned NumCases = SwitchWorkList.back();
----------------
hans wrote:
> Why do we have to do this?
>
> The code is basically constructing the tree and throwing it away. It should be possible to compute an estimate for the size of the tree with a closed-form mathematical expression.
If n is the case number, f(n) is the mapping from the case number to the node number of BTree. The recursion is
f(n) = 1 + f(n/2) + f (n - n/2), when n > 3.
So, f(n) is between n + 2^(log2(n) - 1) - 1 and n + 2^(log2(n)) - 1. The lower bound is about 1.5n - 1 and the upper bound is about 2n - 1
https://reviews.llvm.org/D31085
More information about the llvm-commits
mailing list