[llvm-dev] CloneFunction during LTO leads to seg fault?
Tobias Edler von Koch via llvm-dev
llvm-dev at lists.llvm.org
Fri Feb 12 07:51:01 PST 2016
On 02/11/2016 10:05 AM, Mehdi Amini via llvm-dev wrote:
>> Is this a bug? Is there an assumption that a function won't be cloned after inlining? Is there an assumption that the debug info metadata nodes are well formed when they get to DwarfDebug?
> There shouldn't be such assumptions, and if there is such an assumption the compiler should assert instead of segfaulting (assuming you built with assertions).
> My guess i that CloneFunction hasn't been tested with this case and it is a bug.
The problem is that the Clone* functions don't clean up debug info at
all. This also affects split codegen in LTO (as is, it won't work if you
have debug info). A work-around is to run something similar to
StripDeadDebugInfo after cloning - Sergei (cc'ed) has seen some success
using an approach based on that.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project.
More information about the llvm-dev