[AVX] Make Inits Foldable
authorDavid Greene <greened@obbligato.org>
Mon, 11 Jul 2011 18:25:51 +0000 (18:25 +0000)
committerDavid Greene <greened@obbligato.org>
Mon, 11 Jul 2011 18:25:51 +0000 (18:25 +0000)
commitd4a9066c93da9a5aab47ca228d82e796fdec70c0
treef4533e3a9fe75aa310bd4682b254a053af0bfd73
parent7ae0df41422193e65231a0f9526bfe66067c6532
[AVX] Make Inits Foldable

Manage Inits in a FoldingSet.  This provides several benefits:

- Memory for Inits is properly managed

- Duplicate Inits are folded into Flyweights, saving memory

- It enforces const-correctness, protecting against certain classes
  of bugs

The above benefits allow Inits to be used in more contexts, which in
turn provides more dynamism to TableGen.  This enhanced capability
will be used by the AVX code generator to a fold common patterns
together.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134907 91177308-0d34-0410-b5e6-96231b3b80d8
31 files changed:
utils/TableGen/ARMDecoderEmitter.cpp
utils/TableGen/AsmMatcherEmitter.cpp
utils/TableGen/CallingConvEmitter.cpp
utils/TableGen/ClangAttrEmitter.cpp
utils/TableGen/ClangDiagnosticsEmitter.cpp
utils/TableGen/ClangSACheckersEmitter.cpp
utils/TableGen/CodeEmitterGen.cpp
utils/TableGen/CodeEmitterGen.h
utils/TableGen/CodeGenDAGPatterns.cpp
utils/TableGen/CodeGenDAGPatterns.h
utils/TableGen/CodeGenInstruction.cpp
utils/TableGen/CodeGenInstruction.h
utils/TableGen/CodeGenRegisters.cpp
utils/TableGen/CodeGenTarget.cpp
utils/TableGen/DAGISelMatcherGen.cpp
utils/TableGen/FastISelEmitter.cpp
utils/TableGen/FixedLenDecoderEmitter.cpp
utils/TableGen/InstrInfoEmitter.cpp
utils/TableGen/LLVMCConfigurationEmitter.cpp
utils/TableGen/OptParserEmitter.cpp
utils/TableGen/PseudoLoweringEmitter.cpp
utils/TableGen/PseudoLoweringEmitter.h
utils/TableGen/Record.cpp
utils/TableGen/Record.h
utils/TableGen/RegisterInfoEmitter.cpp
utils/TableGen/SetTheory.cpp
utils/TableGen/SetTheory.h
utils/TableGen/TGParser.cpp
utils/TableGen/TGParser.h
utils/TableGen/TableGen.cpp
utils/TableGen/X86RecognizableInstr.cpp