[LLVMdev] Performance regression on ARM (original) (raw)

C Bergström cbergstrom at pathscale.com
Sat Oct 18 16:31:24 PDT 2014


On Sun, Oct 19, 2014 at 6:11 AM, Joerg Sonnenberger <joerg at britannica.bec.de

wrote:

On Fri, Oct 17, 2014 at 06:51:38PM +0400, Anton Korobeynikov wrote: > > Chandler’s complex arithmetic changes are also in the range: r219557 in clang. We saw it change the code in mandel-2 significantly. > mandel-2 is broken on hard FP ABI systems, btw. The reason is simply: _> we're emitting a call to muldc3 with AAPCS VFP calling convention, > however, the function expects softfp (AAPCS) calling conv and reads > garbage from GP registers.

One possible approach is the attached patch. It is not completely correct as it doesn't handle the possible exceptions for WoA and iOS, but it might be a starting point. The real question for me is whether this logic belongs into clang at all. Who can speak up for the Fortran related behavior of complex arithmetic? If it matters the desired C rules, especially with regard to real and imaginary numbers, it would strongly support putting it into IR properly.

I apologize that I haven't been able to follow this thread entirely, but if someone gives me a Fortran testcase I can check what Fortran+llvm would do currently and maybe give more feedback. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141019/7e3f320f/attachment.html>



More information about the llvm-dev mailing list