PATCH: TableGen: Report an error when defining more than 32 subreg indices
Tom Stellard
tom at stellard.net
Thu Jan 31 11:16:49 PST 2013
On Thu, Jan 31, 2013 at 09:30:48AM -0800, Jakob Stoklund Olesen wrote:
>
> On Jan 31, 2013, at 6:23 AM, Tom Stellard <tom at stellard.net> wrote:
>
> > The maximum number of sub reg indices is limited to 32 by use of the
> > LaneMask. TableGen currently assigns all sub reg indices after the
> > first 32 to the same LaneMask, which leads to bugs in the register
> > allocator. This patch prevents the user from defining more than 32
> > sub reg indices.
>
> Hi Tom,
>
> That behavior is deliberate. It allows graceful degradation for crazy targets with more than 32 vector lanes by sharing the last available bit in the lane mask.
>
I'm not sure I understand exactly what the lane mask is supposed to
represent. Can you give a brief explanation of what it is used for?
-Tom
> This only means that the coalescer can't do subtle sub-register joins beyond the 32nd lane, causing a few more copies in very exotic code. I prefer that to refusing to build the target.
>
> What are the register allocator bugs you found?
>
> /jakob
>
More information about the llvm-commits
mailing list