[llvm-commits] [llvm] r107996 - in /llvm/trunk: lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h lib/Target/X86/AsmPrinter/X86IntelInstPrinter.h lib/Target/X86/X86InstrInfo.cpp lib/Target/X86/X86InstrInfo.td lib/Target/X86/X86InstrSSE.td lib/Target/X8...
David A. Greene
dag at cray.com
Mon Jul 12 10:54:34 CDT 2010
Chris Lattner <clattner at apple.com> writes:
> On Jul 9, 2010, at 2:36 PM, David A. Greene wrote:
>> Chris, what's the best way to move forward? I've even got some block
>> posts ready to explain all of these changes.
> Hi David,
> I don't have any strong opinions about this. Do your patches apply
> cleanly to mainline? Since Bruno has been doing all his work in a
> nice incremental style, I'd suggest working with him on any specific
> patches you want to pull in. Bruno has mentioned that he thinks he
> can implement AVX without reimplementing a lisp interpreter in tblgen,
> which I was pleased to hear ;-) ;-)
There's no reimplementation of lisp.
Yes, one can implement AVX in the same way SSE1-4.2 were implemented but
long term, it doesn't scale because patterns have to be repeated over
and over for various element sizes and vector lengths. Every generation
of SSE/AVX improvement basically doubles the pattern space. When
Larrabee-type instructions begin appearing (and they will in some form,
I believe), we're going to see yet another doubling. Actually two
doublings if masks are included.
The idea of my patches is to specify generic patterns and let TableGen
handle generating all of the various combinations.
I anticipate a quite long discussion about them and I believe there will
be quite a few changes to the patches before they go in, but long term
I believe it is the most maintainable approach.
More information about the llvm-commits