Initial SVE register definitions.
Also extends tablegen to fix type deduction with scalable vectors in patterns, needed in order to build the existing NEON tblgen code with these additional regclasses defined.
Differential D35307
[AArch64] Initial SVE register definitions huntergr on Jul 12 2017, 8:09 AM. Authored by
Details
Initial SVE register definitions. Also extends tablegen to fix type deduction with scalable vectors in patterns, needed in order to build the existing NEON tblgen code with these additional regclasses defined.
Diff Detail
Event Timeline
Comment Actions Hi Amara, This seems a very raw change, without any further description, comments or proper usage, other than a few changes on random places. You have to describe what the changes are meant to do, where the documents are (as a refresher), which chapters of the documents those registers are described, and hopefully some use of them somewhere. Is it not possible to write tests for them? If so, why not? Is this the first of a series? If yes, there what's the rest? A description of the changes would help, but much better if you pointer to more reviews in the series. cheers,
Comment Actions I don't agree. The additions are in line with the level of documentation in the rest of the file. This is essentially an NFC change until we begin to add support for the actual instructions. To do so, first we need some minimal registers and regclasses defined.
The architecture reference manual supplement describes SVE in more detail: https://developer.arm.com/docs/ddi0584/latest/arm-architecture-reference-manual-supplement-the-scalable-vector-extension-sve-for-armv8-a
Unless the registers are used in an instruction, I'm not aware of any way to test them. Happy to do so if you have a suggestion on this though.
Not really, the rest of the patches will come eventually but we're waiting on foundations and infrastructure to committed first before we prepare next steps. We're trying to break down the entire SVE support into small pieces.
Comment Actions Gah. Misunderstanding on my part of what Florian was talking about. Please disregard my previous comment Comment Actions I meant the review description / commit message. It's customary to add links to the documentation that describes the additions and a short text on what's the future plan, etc.
We normally use the term NFC for refactory, not dead code. This only has "no functional changes" because the code is not used at all. Adding the register classes is an important first step, of course, but they normally come followed by the sequence of commits that will use it, showing their usage, how they'll be tested, etc. Look at the submissions of new back-ends (AArch64, BPF, RISCV, AAP, etc), they're all good examples on how to submit a big change in the back-end, which this is one (SVE).
Right, adding that to the description would have been good.
Precisely why you need to show a larger change-set.
Carrying dead code for an eventual further patch doesn't scale. Either this patch has a purpose and you show it, or it will just sit here, not being reviewed. Breaking down SVE into pieces is the right thing to do, but unless you show all the pieces and how they fit together, getting someone to review one piece alone will be impossible. I suggest you start with at least three major change-sets:
For both 1 and 2 threads I suggest you guys to show more of the patch set, with a complete block of functionality implemented and tested, from begin to end. That'll help people to understand a larger part of what you're trying to upstream and why it makes sense (or if not, how to make it better, etc). cheers,
Comment Actions I'm resigning from SVE upstreaming related activities, so Graham will be taking over this patch and others from here. |
Avoid unnecessary line moves.