[PATCH] Line table, prologue_end, and inlined functions

Eric Christopher echristo at gmail.com
Tue Apr 23 05:42:24 PDT 2013


Hi Adrian,

I'm not sure about this as the correct design for prologue_end and
inlined subroutines. Could you give an example of what you're thinking
the output should be with this patch?

I'm guessing that lldb here is using the prologue_end only as the
address where it stops execution for a given routine that happens to
have an inlined part as the first non-prologue instruction and getting
confused as to which function we're in or which function the
prologue_end belongs to?

The informative text for DW_LNS_set_prologue_end says:

"Note that the function to which the prologue end applies cannot be
directly determined from
the line number information alone; it must be determined in
combination with the subroutine
information entries of the compilation (including inlined subroutines)."

Basically if I'm reading correct your patch announces that the end of
the prologue is, instead, the beginning of the function before the
prologue in cases where an inlined function is at the end of the
prologue. This seems incorrect as someone would expect that all of the
setup for the function has been done when, in fact, it hasn't?

Thoughts?

-eric


On Wed, Mar 20, 2013 at 8:53 PM, Adrian Prantl <aprantl at apple.com> wrote:
> Hi potential reviewers!
>
> Line table: Ensure that the prologue_end flag is associated with a line that is inside of the current function and does not point to an instruction from an inlined function.
>
> -- adrian



More information about the llvm-commits mailing list