[llvm-commits] [PATCH] Add placeholder for eight-byte mandatory traceback table on PPC64

William J. Schmidt wschmidt at linux.vnet.ibm.com
Wed Aug 29 10:33:36 PDT 2012


On Wed, 2012-08-29 at 12:15 -0500, Hal Finkel wrote:
> Bill,
> 
> Why did you change the wording in the comment from "Eventually we
> should add" to "Eventually it would be potentially useful to fill in"?
> What's the rationale for the softer wording?

Hi Hal,

Yes, this was intentional; I felt I had worded it too strongly the first
time.  Although the ABI calls for these fields to be filled in fully, no
compiler on Linux currently does this, and GDB does not read these
fields.  GDB uses the first word of zeroes during exception handling to
find the end of the function and the size field, allowing it to compute
the beginning of the function.  DWARF information is used for everything
else.  We need the extra 8 bytes of pad so the size field is found in
the right place.

(As a comparison, GCC fills in a few of the fields -- language, number
of saved registers -- but ignores the rest.  IBM's proprietary OSes do
make use of the full traceback table facility.)

So although we will remain technically out of ABI compliance by not
filling in these fields, it is very low priority compared to other work
that needs to be done on the back end.  That's all I'm trying to convey.
Someday it should probably be done in case some tools want to leverage
the information, but for now the need for it is speculative.

(For the record, I will accept whatever language you would prefer in the
comment. ;)

Thanks,
Bill

> 
>  -Hal
> 
> On Wed, 29 Aug 2012 11:53:06 -0500
> "William J. Schmidt" <wschmidt at linux.vnet.ibm.com> wrote:
> 
> > After offline discussion it became clear we need to reserve space for
> > the mandatory traceback fields, though leaving them as zero is
> > appropriate for now.  This small patch adds the extra eight bytes and
> > updates the associated test case.
> > 
> > Please commit if OK.
> > 
> > Thanks!
> > Bill
> > 
> 
> 
> 





More information about the llvm-commits mailing list