This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Enable RAS 1.1 system registers in all AArch64
ClosedPublic

Authored by pbarrio on Nov 2 2020, 3:33 AM.

Details

Summary

Some use cases (e.g. kernel devs) have strict requirements to only enable
features available with -march=armv8-a, e.g. no armv8.1-a. Enabling RAS 1.1 in
all AArch64 means they can consider to support it.

Bear in mind that the first versions of the Armv8 architecture still do not
support RAS 1.1. This patch only lets devs write code with the user-friendly
register mnemonic instead of the ugly generic S<op0>_<op1>_<Cn>_<Cm>_<op2>.
They still need to place runtime checks to make sure that the CPU to run on
supports RAS 1.1.

Diff Detail

Event Timeline

pbarrio created this revision.Nov 2 2020, 3:33 AM
pbarrio requested review of this revision.Nov 2 2020, 3:33 AM
dnsampaio accepted this revision.Nov 2 2020, 7:32 AM

Perhaps those were some registers that passes by in being classified inside a feature. The usual behavior in llvm (at least for arm), if I'm not mistaken, is to not do so.
So, it LGTM.

This revision is now accepted and ready to land.Nov 2 2020, 7:32 AM
vhscampos accepted this revision.Nov 5 2020, 6:03 AM

Diogo, Victor, thanks for the review. I am going to attribute the failure in the HWAddressSanitizer to something else, since it looks x86-related and this patch doesn't touch anything near x86 support.

This revision was landed with ongoing or failed builds.Nov 10 2020, 4:14 AM
This revision was automatically updated to reflect the committed changes.