[PATCH] Fix line numbers for code inlined from __nodebug__ functions.

Evgeniy Stepanov eugenis at google.com
Mon Jun 2 11:02:11 PDT 2014


On Mon, Jun 2, 2014 at 9:51 PM, David Blaikie <dblaikie at gmail.com> wrote:
> What's the user experience today that this is fixing? Is this any different/worse than a whole (non-inlined) function having no line information?

Imagine a function with several dozen of SSE intrinsic calls (via
_mm_* wrappers). They all get inlined, and none of them has line
information.

If no code is moved around, they look like they all belong to the
nearest line above that has line information. Any code that was moved
around (ex. due to being a target of a cold branch), they get
essentially random line info.

With sanitizers, there is a lot of code motion (all error reports are
cold code). As a result, any sanitizer reports on sse intrinsics point
to random lines (luckily, inside the same function). Extremely
confusing.

>
> Any idea what GCC does here?
>
> http://reviews.llvm.org/D3988
>
>



More information about the llvm-commits mailing list