teak-llvm/llvm/lib/Transforms
Taewook Oh 923c216da5 [ICP] Do not attempt type matching for variable length arguments.
Summary:
When performing indirect call promotion, current implementation inspects "all" parameters of the callsite and attemps to match with the formal argument type of the callee function. However, it is not possible to find the type for variable length arguments, and the compiler crashes when it attemps to match the type for variable lenght argument.

It seems that the bug is introduced with D40658. Prior to that, the type matching is performed only for the parameters whose ID is less than callee->getFunctionNumParams(). The attached test case will crash without the patch.

Reviewers: mssimpso, davidxl, davide

Reviewed By: mssimpso

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D46026

llvm-svn: 330844
2018-04-25 17:19:21 +00:00
..
AggressiveInstCombine Fix some layering in AggressiveInstCombine (avoiding inclusion of Scalar.h) 2018-04-24 15:40:07 +00:00
Coroutines [Transforms] Change std::sort to llvm::sort in response to r327219 2018-04-13 19:47:57 +00:00
Hello
InstCombine [InstCombine] clean up foldSelectICmpAnd(); NFC 2018-04-25 16:34:01 +00:00
Instrumentation [HWASan] Use dynamic shadow memory on Android only (LLVM) 2018-04-24 00:16:54 +00:00
IPO Fix some layering in AggressiveInstCombine (avoiding inclusion of Scalar.h) 2018-04-24 15:40:07 +00:00
ObjCARC [ObjCARC] Take BlockColors by const reference. NFC 2018-04-20 22:14:45 +00:00
Scalar [LoopInterchange] Use getExitBlock()/getExitingBlock instead of manual impl. 2018-04-25 09:35:54 +00:00
Utils [ICP] Do not attempt type matching for variable length arguments. 2018-04-25 17:19:21 +00:00
Vectorize [LV][VPlan] Detect outer loops for explicit vectorization. 2018-04-24 17:04:17 +00:00
CMakeLists.txt
LLVMBuild.txt