llvm/utils/TableGen
Craig Topper 5ef134945b [TableGen] Modify the AsmMatcherEmitter to only apply the table growth from r252440 to the Hexagon target.
This restores the previous behavior of not including the mnemonic in the classes table for every target that starts instruction lines with the mnemonic. Not only did the table size increase by 1 entry, but the class enum increased in size which caused every class in the array to increase in size. It also grew the size of the function that parsers tokens into classes by a substantial amount.

This adds a new HasMnemonicFirst flag to all AsmParsers. It's set to 1 by default and Hexagon target overrides it to 0.

For the X86 target alone this recovers 324KB of size on the llvm-mc executable.

I believe the current state is still a bad design choice for the Hexagon target as it causes most of the parsing to do a linear search through the entire match table to comparing operands against every instruction until it finds one that works. At least for the other targets we do a binary search based on mnemonic over which to do the linear scan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256669 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-31 08:18:23 +00:00
..
AsmMatcherEmitter.cpp [TableGen] Modify the AsmMatcherEmitter to only apply the table growth from r252440 to the Hexagon target. 2015-12-31 08:18:23 +00:00
AsmWriterEmitter.cpp [TableGen] Correct Namespace lookup with AltNames in AsmWriterEmitter 2015-12-11 17:31:27 +00:00
AsmWriterInst.cpp Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types 2015-05-29 19:43:39 +00:00
AsmWriterInst.h [MCInstPrinter] Enable MCInstPrinter to change its behavior based on the 2015-03-27 20:36:02 +00:00
Attributes.cpp Provide a way to specify inliner's attribute compatibility and merging. 2015-12-22 23:57:37 +00:00
CallingConvEmitter.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
CMakeLists.txt Move the enum attributes defined in Attributes.h to a table-gen file. 2015-11-11 20:35:42 +00:00
CodeEmitterGen.cpp
CodeGenDAGPatterns.cpp [TableGen] Remove an assumption about the order of encodings in the MVT::SimpleValueType enum. Instead of assuming the types are sorted by size, scan the typeset arrays to find the smallest/largest type. NFC 2015-12-03 05:57:37 +00:00
CodeGenDAGPatterns.h [SelectionDAG] Add a SDTCisSameSizeAs type constraint that can be used to ensure vector widths match even if the element size and count don't. 2015-11-26 07:02:18 +00:00
CodeGenInstruction.cpp Add an OperandNamespace field to Target.td's Operand. 2015-12-22 23:37:37 +00:00
CodeGenInstruction.h [TableGen] Use the SMLoc header file instead of SourceMgr header file in a couple places. NFC 2015-06-08 01:35:40 +00:00
CodeGenIntrinsics.h Emit argmemonly attribute for intrinsics. 2015-08-13 17:40:04 +00:00
CodeGenMapTable.cpp TableGen: Add LLVM_READONLY to generated InstrMapping functions 2015-09-24 07:51:20 +00:00
CodeGenRegisters.cpp Assume lane masks are always precise 2015-11-17 00:50:55 +00:00
CodeGenRegisters.h RegAllocGreedy: Allow target to specify register class ordering. 2015-03-31 19:57:53 +00:00
CodeGenSchedule.cpp [TblGen] ArrayRefize CodeGenSchedule. No functionality change intended. 2015-10-24 12:46:49 +00:00
CodeGenSchedule.h Use make_range to reduce mentions of iterator type. NFC 2015-12-06 05:08:07 +00:00
CodeGenTarget.cpp Add names for the new vector types in CodeGenTarget.cpp 2015-11-24 15:50:22 +00:00
CodeGenTarget.h Use make_range to reduce mentions of iterator type. NFC 2015-12-06 05:08:07 +00:00
CTagsEmitter.cpp [TableGen] Remove unnecessary default constructed SMLoc that just existed to return. Instead just call the default constructor in the return. 2015-06-08 01:35:45 +00:00
DAGISelEmitter.cpp
DAGISelMatcher.cpp
DAGISelMatcher.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
DAGISelMatcherEmitter.cpp [TableGen][DAGISel] Dedup predicates with same code to run. NFCI. 2015-08-27 20:43:34 +00:00
DAGISelMatcherGen.cpp Fix tablegen's PrintFatalError function to run registered file 2015-05-11 22:17:13 +00:00
DAGISelMatcherOpt.cpp
DFAPacketizerEmitter.cpp Avoid dependency between TableGen and CodeGen 2015-11-22 15:20:19 +00:00
DisassemblerEmitter.cpp [TableGen] Improve decoding options for non-orthogonal instructions 2015-07-15 08:04:27 +00:00
FastISelEmitter.cpp
FixedLenDecoderEmitter.cpp Default SetVector to use a DenseSet. 2015-11-18 06:52:18 +00:00
InstrInfoEmitter.cpp Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
IntrinsicEmitter.cpp Add vector types for intrinsics 2015-11-24 16:28:14 +00:00
LLVMBuild.txt
Makefile
module.modulemap
OptParserEmitter.cpp Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
PseudoLoweringEmitter.cpp MC: Modernize MCOperand API naming. NFC. 2015-05-13 18:37:00 +00:00
RegisterInfoEmitter.cpp Remove extra 'nullptr' entry from an array in tablegen register info file. It should never have been accessed. 2015-09-22 05:37:16 +00:00
SequenceToOffsetTable.h
SubtargetEmitter.cpp Fix Clang-tidy modernize-use-nullptr warnings in source directories and generated files; other minor cleanups. 2015-10-06 23:24:35 +00:00
TableGen.cpp Move the enum attributes defined in Attributes.h to a table-gen file. 2015-11-11 20:35:42 +00:00
TableGenBackends.h Move the enum attributes defined in Attributes.h to a table-gen file. 2015-11-11 20:35:42 +00:00
tdtags
X86DisassemblerShared.h Revert r234389. It really was needed but really should have been cstring instead of string.h 2015-04-08 06:03:17 +00:00
X86DisassemblerTables.cpp AVX-512: Added all AVX-512 forms of Vector Convert for Float/Double/Int/Long types. 2015-07-13 13:26:20 +00:00
X86DisassemblerTables.h
X86ModRMFilters.cpp
X86ModRMFilters.h
X86RecognizableInstr.cpp [X86][PKU] Add {RD,WR}PKRU encoding 2015-12-24 08:25:00 +00:00
X86RecognizableInstr.h