This is an archive of the discontinued LLVM Phabricator instance.

[SVE] Remove aarch64_sve_vector_pcs attribute
AbandonedPublic

Authored by c-rhodes on Oct 12 2020, 8:43 AM.

Details

Summary

The attribute is unnecessary because what it implies is handled by the C
calling convention (default).

Diff Detail

Event Timeline

c-rhodes created this revision.Oct 12 2020, 8:43 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 12 2020, 8:43 AM
c-rhodes requested review of this revision.Oct 12 2020, 8:43 AM

I thought we kept it around intentionally because it has a different set of callee-save registers? If it turns out we don't care about that, sure, I guess we can drop it.

I think we should keep this because it gives us the possibility to attach it to functions where the function signature wouldn't use it otherwise.

Not exactly sure of the validity of this example but perhaps somebody will want to implement a printf like function (or some other debug/validation/timing function) that's only called by an existing SVE function and doesn't want the whole SVE state being preserved by the caller.

I thought we kept it around intentionally because it has a different set of callee-save registers? If it turns out we don't care about that, sure, I guess we can drop it.

The callee-saves are the same I think

I think we should keep this because it gives us the possibility to attach it to functions where the function signature wouldn't use it otherwise.

Not exactly sure of the validity of this example but perhaps somebody will want to implement a printf like function (or some other debug/validation/timing function) that's only called by an existing SVE function and doesn't want the whole SVE state being preserved by the caller.

Fair enough, there may well be uses I wasn't aware of and if so we should keep it around, although I don't think in C there's anyway of telling Clang to emit the attribute.

c-rhodes abandoned this revision.Oct 13 2020, 2:53 AM