[PATCH] D45116: Don't inline branch funnels

Vitaly Buka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 2 17:28:27 PDT 2018


vitalybuka added a comment.

In https://reviews.llvm.org/D45116#1055076, @rnk wrote:

> Why is it invalid to inline the call to the branch funnel?


Branch funnels can look look like this:

  define hidden void @__typeid_typeid1_0_branch_funnel(i8* nest, ...) {
    musttail call void (...) @llvm.icall.branch.funnel(i8* %0, i8* bitcast ([1 x i8*]* @vt1_1 to i8*), i32 (i8*, i32)* @vf1_1, i8* bitcast ([1 x i8*]* @vt1_2 to i8*), i32 (i8*, i32)* @vf1_2, ...)
    ret void
  }

If we inline it then LowerTypeTests.cpp (near line 1806) will not be able to separate call targets from target arguments (here ...).


Repository:
  rL LLVM

https://reviews.llvm.org/D45116





More information about the llvm-commits mailing list