aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2016-12-27 06:46:20 +0000
committerChandler Carruth <chandlerc@gmail.com>2016-12-27 06:46:20 +0000
commit141bf5d14d3edcfe01b0869879afe8b1e6d7c979 (patch)
tree21abfa0f4746bff62e05a384addd7b78b62a661e /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
parentdb6ced848406816c349b4925fd6a7a7bbd479579 (diff)
downloadllvm-141bf5d14d3edcfe01b0869879afe8b1e6d7c979.zip
llvm-141bf5d14d3edcfe01b0869879afe8b1e6d7c979.tar.gz
llvm-141bf5d14d3edcfe01b0869879afe8b1e6d7c979.tar.bz2
[PM] Add one of the features left out of the initial inliner patch:
skipping indirectly recursive inline chains. To do this, we implicitly build an inline stack for each callsite and check prior to inlining that doing so would not form a cycle. This uses the exact same technique and even shares some code with the legacy PM inliner. This solution remains deeply unsatisfying to me because it means we cannot actually iterate the inliner externally. Doing so would not be able to easily detect and avoid such cycles. Some day I would very much like to have a solution that works without this internal state to detect cycles, but this is not that day. llvm-svn: 290590
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions