[PATCH] D22008: GlobalISel: implement low-level type suitable for MachineInstr selection
Tim Northover via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 5 12:58:23 PDT 2016
t.p.northover created this revision.
t.p.northover added a reviewer: qcolombet.
t.p.northover added a subscriber: llvm-commits.
t.p.northover set the repository for this revision to rL LLVM.
Herald added a reviewer: tstellarAMD.
Herald added subscribers: mcrosier, vkalintiris, mehdi_amini.
In my first attempt at a legalization framework for GlobalISel (http://reviews.llvm.org/D21534), Quentin said he intended to move towards a lower-level type representation (essentially just size & lanes). Since the legalization description makes heavy use of types, it's probably best to do that earlier rather than later, hence this patch.
I've added a new ``LLT`` class, with 3 variants, designed to look similar to IR-level types:
* ``unsized`` for labels etc
* ``sN`` for scalars & aggregates.
* ``<N x sM>`` for vectors.
At the moment, vectors must contain more than 1 element (so no ``<1 x double>``). I know there are doubts about this being adequate, but I'd like to press on as far as possible under the assumption that RegBankSelect can handle things and it's easier to relax that requirement than impose it later if we're wrong.
There should be no functional change here (we still don't have that much functionality to change!). Test changes are just updating to the new syntax.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 37998 bytes
Desc: not available
More information about the llvm-commits