performance regression on sphereflake

Renato Golin renato.golin at linaro.org
Tue Feb 18 15:20:36 PST 2014


Gerolf,

AFAIK, the old APCS never tried to define the alignment of complex
aggregates, or the stack.

What Rafael said is true, it's more of preference (or rather,
compatibility), than ABI conformance. But if it's generating
regressions, we should look into.

Being pragmatic, one has to look why that was set in Clang in the
first place. Making it the same on both places makes sense (and why
it's a good idea to have target descriptions external to both LLVM and
Clang, as proposed by Jim), but we need to make sure whoever added it
to Clang did it for a reason, and what reason was that.

To be honest, APCS is pretty old, and no one should be using that on
current hardware. I'm not sure how much time we should spend in that
area. I just don't want someone else yelling from the other corner
because we changed it to 64-bit alignment without a reason to do so.

Since this is not even an ABI issue, I believe we should do whatever
the other compilers do to be consistent. So in this case, "whatever
ARMCC and GCC" do should be a valid reason to set either to 32-bit or
64-bit alignment.

cheers,
--renato


On 18 February 2014 22:03, Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote:
> On 18 February 2014 16:37, Gerolf Hoflehner <ghoflehner at apple.com> wrote:
>> Hi Rafael,
>>
>> I'm not using a special FE.  Could you go ahead and revert the fix? It can
>> cause a performance regression on some architectures and I have not seen a
>> benefit yet.
>
> Are you using clang? This is strange, as the patch synchronized llvm's
> string to that used by clang.
>
> I am no ARM expert, so I would like a review from someone with more
> experience in it. Renato, what do you think of the patches?
>
> Cheers,
> Rafael




More information about the llvm-commits mailing list