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

David Blaikie dblaikie at gmail.com
Mon Jun 2 11:16:46 PDT 2014


On Mon, Jun 2, 2014 at 11:02 AM, Evgeniy Stepanov <eugenis at google.com> wrote:
> 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.

Fair enough - why are these intrinsics marked with __nodebug__?

>
>>
>> Any idea what GCC does here?

Still curious about this /\



More information about the llvm-commits mailing list