]> granicus.if.org Git - llvm/commit
[INLINER] allow inlining of address taken blocks
authorNick Desaulniers <ndesaulniers@google.com>
Thu, 14 Feb 2019 23:35:53 +0000 (23:35 +0000)
committerNick Desaulniers <ndesaulniers@google.com>
Thu, 14 Feb 2019 23:35:53 +0000 (23:35 +0000)
commitf85aaf19177be467fdfee5dac59466749d9947a7
tree2e82ec7fe46c0c815e289069f192ad4383a4f33e
parentaea63d5e2dc0436ce86d725e69970211559dc14a
[INLINER] allow inlining of address taken blocks

as long as their uses does not contain calls to functions that capture
the argument (potentially allowing the blockaddress to "escape" the
lifetime of the caller).

TODO:
- add more tests
- fix crash in llvm::updateCGAndAnalysisManagerForFunctionPass when
  invoking Transforms/Inline/blockaddress.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@354079 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/BasicBlock.h
lib/Analysis/InlineCost.cpp
lib/IR/BasicBlock.cpp