[TableGen] Add 'register alternative name matching' support
authorDylan McKay <dylanmckay34@gmail.com>
Wed, 3 Feb 2016 10:30:16 +0000 (10:30 +0000)
committerDylan McKay <dylanmckay34@gmail.com>
Wed, 3 Feb 2016 10:30:16 +0000 (10:30 +0000)
commitbff960a926fb1a237bef139cb1e1c88c67586277
treed09f333c0dba3f8edab88b70547d871e1b9f8cc4
parent18bcf93efb3b5c99fba6d95e197b8f26538e5a48
[TableGen] Add 'register alternative name matching' support

Summary:
This adds a new attribute which targets can set in TableGen which causes a function to be generated which matches register alternative names. This is very similar to `ShouldEmitMatchRegisterName`, except it works on alt names.

This patch is currently used by the out of tree part of the AVR backend. It reduces code duplication greatly, and has the effect that you do not need to hardcode altname to register mappings in C++.

It will not work on targets which have registers which share the same aliases.

Reviewers: stoklund, arsenm, dsanders, hfinkel, vkalintiris

Subscribers: hfinkel, dylanmckay, llvm-commits

Differential Revision: http://reviews.llvm.org/D16312

llvm-svn: 259636
llvm/include/llvm/Target/Target.td
llvm/utils/TableGen/AsmMatcherEmitter.cpp