r208733 - Push record return type classification into CGCXXABI

Andy Gibbs andyg1001 at hotmail.co.uk
Thu Apr 2 01:44:59 PDT 2015


Hi Reid,

This commit from May 2014 causes a really bad regression when compiling
PowerPC code.  I have submitted a bug report here:

https://llvm.org/bugs/show_bug.cgi?id=23097

I have checked and can confirm that reverting this commit fixes the
problem for me.  But, since my understanding of this code is not great,
I really don't know what else might now be broken.

I assume there is a better fix than to revert your commit.  Any ideas?

Thanks
Andy


> Author: rnk
> Date: Tue May 13 17:05:45 2014
> New Revision: 208733
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=208733&view=rev
> Log:
> Push record return type classification into CGCXXABI
> 
> In the Microsoft C++ ABI, instance methods always return records
> indirectly via the second hidden parameter.  This was implemented in
> X86_32ABIInfo, but not WinX86_64ABIInfo.
> 
> Rather than exposing a handful of boolean methods in the CGCXXABI
> interface, we can expose a single method that applies C++ ABI return
> value classification rules.
> 
> Modified:
>    cfe/trunk/lib/CodeGen/CGCXXABI.h
>    cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp
>    cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp
>    cfe/trunk/lib/CodeGen/TargetInfo.cpp
>    cfe/trunk/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp




More information about the cfe-commits mailing list