Allow multiclass def names to contain "#NAME"" where TableGen replaces
authorDavid Greene <greened@obbligato.org>
Tue, 5 May 2009 16:28:25 +0000 (16:28 +0000)
committerDavid Greene <greened@obbligato.org>
Tue, 5 May 2009 16:28:25 +0000 (16:28 +0000)
commit065f259ff5e9e3dcd0da4db3ccd29775c789669d
treecd71009f55b420d51258cbc53a2dcd5f82f28181
parentf8681568201ee3808c154a4de09888d85c76a446
Allow multiclass def names to contain "#NAME"" where TableGen replaces
#NAME# with the name of the defm instantiating the multiclass.  This is
useful for AVX instruction naming where a "V" prefix is standard
throughout the ISA.  For example:

multiclass SSE_AVX_Inst<...> {
   def SS : Instr<...>;
   def SD : Instr<...>;
   def PS : Instr<...>;
   def PD : Instr<...>;

   def V#NAME#SS : Instr<...>;
   def V#NAME#SD : Instr<...>;
   def V#NAME#PS : Instr<...>;
   def V#NAME#PD : Instr<...>;
}

defm ADD : SSE_AVX_Inst<...>;

Results in

ADDSS
ADDSD
ADDPS
ADDPD

VADDSS
VADDSD
VADDPS
VADDPD

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70979 91177308-0d34-0410-b5e6-96231b3b80d8
test/TableGen/MultiClassDefName.td [new file with mode: 0644]
utils/TableGen/TGLexer.cpp
utils/TableGen/TGParser.cpp