[cfe-commits] [LLVMdev] [PATCH/RFC, PowerPC] Extend 32-bit function arguments / return values

Ulrich Weigand Ulrich.Weigand at de.ibm.com
Mon Nov 5 10:24:02 PST 2012


Eli Friedman <eli.friedman at gmail.com> wrote on 01.11.2012 01:22:06:
> On Wed, Oct 31, 2012 at 7:44 AM, Ulrich Weigand
> <Ulrich.Weigand at de.ibm.com> wrote:
> > I'm wondering how to proceed on this issue for now.  Current status is
> > that I've checked in the testsuite patch, since there was agreement
> > that fixing the tests by adding target triples was the way to go.
> > However, the actual fix to enable the sign-extensions required by
> > the PowerPC64 ABI is not in, so we still generate code that violates
> > the ABI.
> >
> > I understand that there is a long-term goal of having those extensions
> > done in the front end instead of in LLVM.  However, as far as I can
> > see the necessary infrastructure is not yet fully present (or in any
> > event, I don't see how to do it in the front end right now) ...
> >
> > Therefore, since my patch doesn't make moving to the new scheme
> > any more difficult (it just does the same thing for "int" that is
> > already being done for "short" and "char"), and it does fix the
> > ABI bug we have right now, I'd propose to check it in now (and
> > then move to new scheme with everyone else once it is ready).
> >
> > Would this be OK?  Any other suggestions?
> >
> > For reference, the patch in question is appended again.
>
> Please factor out the check for whether an integer type needs to be
> extended into a separate method.

I've attached an updated patch.  Is this what you intended?

> Please make sure there's a testcase on the LLVM side to make sure we
> actually handle the attributes correctly.

Good point.  In fact, as it happens, attributes on i32 *return values*
were not handled correctly, but ignored completely.  (The attributes
are handled for arguments, which is why the clang patch actually fixed
the failure I was seeing ...)

I've just posted a patch to llvm-commmits to provide a testcase,
and a fix for the attributes on return values:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121105/155181.html

Thanks for the review!

Bye,
Ulrich
(See attached file: diff-clang-ppc64-extend)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: diff-clang-ppc64-extend
Type: application/octet-stream
Size: 2551 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121105/877e6d34/attachment.obj>


More information about the cfe-commits mailing list