This is an archive of the discontinued LLVM Phabricator instance.

Add support for AArch64 and ARM backends for v8.1 architecture extension.
Needs ReviewPublic

Authored by vsukharev on Mar 20 2015, 2:21 PM.

Details

Reviewers
t.p.northover
Summary

Add support for AArch64 and ARM backends for v8.1 architecture extension. Briefly it is described on
http://community.arm.com/groups/processors/blog/2014/12/02/the-armv8-a-architecture-and-its-ongoing-development

[AArch64] Refactor AArch64NamedImmMapper to become dependent on subtarget features.
In order to introduce v8.1-specific entities, Mappers should be aware of SubtargetFeatures available.
This patch introduces refactoring, that will then allow to easily introduce:

  • v8.1-specific "pan" PState for PStateMapper (PAN extension)
  • v8.1-specific sysregs for SysRegMapper (LOR,VHE extensions)

[AArch64] Add v8.1a "Privileged Access Never" extension

[AArch64] Add v8.1a "Limited Ordering Regions" extension

[AArch64] Add v8.1a "Virtualization Host Extensions"

[AArch64] Add v8.1a atomic instructions

[AArch64] Add v8.1a "Rounding Double Multiply Add/Subtract" extension

[ARM] Add v8.1a "Rounding Double Multiply Add/Subtract" extension

[ARM] Add v8.1a "Privileged Access Never" extension

[AArch64, ARM] Add v8.1a architecture and generic cpu

Diff Detail

Event Timeline

vsukharev updated this revision to Diff 22376.Mar 20 2015, 2:21 PM
vsukharev retitled this revision from to Add support for AArch64 and ARM backends for v8.1 architecture extension. Briefly it is described on http://community.arm.com/groups/processors/blog/2014/12/02/the-armv8-a-architecture-and-its-ongoing-development [AArch64] Refactor....
vsukharev updated this object.
vsukharev edited the test plan for this revision. (Show Details)
vsukharev added reviewers: t.p.northover, aemerson.
vsukharev updated this object.Mar 20 2015, 2:25 PM
vsukharev updated this object.
vsukharev added subscribers: Unknown Object (MLST), Unknown Object (MLST).
vsukharev retitled this revision from Add support for AArch64 and ARM backends for v8.1 architecture extension. Briefly it is described on http://community.arm.com/groups/processors/blog/2014/12/02/the-armv8-a-architecture-and-its-ongoing-development [AArch64] Refactor... to Add support for AArch64 and ARM backends for v8.1 architecture extension..Mar 20 2015, 2:30 PM
vsukharev removed a subscriber: Unknown Object (MLST).
t.p.northover edited edge metadata.Mar 20 2015, 2:39 PM

This looks like lots of different patches combined into one big one (across multiple Targets even!). It'd be better to split by individual features.

Entire backends have to be committed in one block, and we don't like that no matter how unavoidable it is. Feature extensions like this don't.

Tim.

lib/Target/AArch64/AArch64InstrFormats.td
8608

We don't usually put commented code in, and there's basically not the slightest hope that i16 is going to become a legal type in the current SelectionDAG framework.

Sorry, it was first attempt to use arcanist, I thought it will submit several commits as a several diffs.
Will now submit patches one-by-one..

aemerson removed a subscriber: aemerson.