llvm-6502/utils/TableGen
Owen Anderson 1e56a2a85f Replace the statically generated hashtables for checking register relationships with just scanning the (typically tiny) static lists.
At the time I wrote this code (circa 2007), TargetRegisterInfo was using a std::set to perform these queries.  Switching to the static hashtables was an obvious improvement, but in reality there's no reason to do anything other than scan.
With this change, total LLC time on a whole-program 403.gcc is reduced by approximately 1.5%, almost all of which comes from a 15% reduction in LiveVariables time.  It also reduces the binary size of LLC by 86KB, thanks to eliminating a bunch of very large static tables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133051 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15 06:53:50 +00:00
..
ARMDecoderEmitter.cpp Disassembly of A8.6.59 LDR (literal) Encoding T1 (16-bit thumb instruction) should 2011-04-22 19:12:43 +00:00
ARMDecoderEmitter.h
AsmMatcherEmitter.cpp Give CodeGenRegisterClass a real sorted member set. 2011-06-15 04:50:36 +00:00
AsmMatcherEmitter.h Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
AsmWriterEmitter.cpp Give CodeGenRegisterClass a real sorted member set. 2011-06-15 04:50:36 +00:00
AsmWriterEmitter.h * Add classes that support the "feature" information. 2011-03-21 08:31:53 +00:00
AsmWriterInst.cpp
AsmWriterInst.h
CallingConvEmitter.cpp
CallingConvEmitter.h Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
ClangASTNodesEmitter.cpp TableGen: Keep the order of DECL_CONTEXT() for DeclNodes.td. RecordVector may be used instead of RecordSet. 2011-04-11 23:20:28 +00:00
ClangASTNodesEmitter.h
ClangAttrEmitter.cpp Extend Clang's TableGen emitter for attributes to support bool arguments. 2011-03-26 03:40:01 +00:00
ClangAttrEmitter.h
ClangDiagnosticsEmitter.cpp [tablegen] A couple of changes to ClangDiagnosticEmmitter. 2011-05-25 05:04:22 +00:00
ClangDiagnosticsEmitter.h Initial work to improve documentation for Clang's diagnostics, from Matthieu Monrocq 2011-04-15 22:04:07 +00:00
ClangSACheckersEmitter.cpp ClangSAEmClangSACheckersEmitter, emit info about groups. 2011-03-30 00:22:00 +00:00
ClangSACheckersEmitter.h
CMakeLists.txt Move TableGen's register bank classes to their own source file. 2011-06-09 18:42:07 +00:00
CodeEmitterGen.cpp Fix a bug in tblgen that caused incorrect encodings on instructions that specified operands with "bit" instead of "bits<1>". 2011-04-28 17:51:45 +00:00
CodeEmitterGen.h
CodeGenDAGPatterns.cpp since the VT is fixed for a ImmLeaf, there is no reason to expose it to the matching code. 2011-04-17 22:17:27 +00:00
CodeGenDAGPatterns.h Implement major new fastisel functionality: the matcher can now handle immediates with 2011-04-18 06:22:33 +00:00
CodeGenInstruction.cpp Give CodeGenRegisterClass a real sorted member set. 2011-06-15 04:50:36 +00:00
CodeGenInstruction.h change OperandsSignature to use SmallVector<char> instead of std::vector<string> 2011-04-17 22:24:13 +00:00
CodeGenIntrinsics.h Change how tblgen generates attributes for intrinsics to use a single 2011-05-28 06:31:34 +00:00
CodeGenRegisters.cpp Use a SetTheory instance to expand register lists in register classes. 2011-06-15 05:09:20 +00:00
CodeGenRegisters.h Use a SetTheory instance to expand register lists in register classes. 2011-06-15 05:09:20 +00:00
CodeGenTarget.cpp Give CodeGenRegisterClass a real sorted member set. 2011-06-15 04:50:36 +00:00
CodeGenTarget.h Move the list of register classes into CodeGenRegBank as well. 2011-06-15 00:20:40 +00:00
DAGISelEmitter.cpp Teach TableGen to pre-calculate register enum values when creating the 2011-03-11 02:19:02 +00:00
DAGISelEmitter.h Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
DAGISelMatcher.cpp Rework our internal representation of node predicates to expose more 2011-04-17 21:38:24 +00:00
DAGISelMatcher.h Rework our internal representation of node predicates to expose more 2011-04-17 21:38:24 +00:00
DAGISelMatcherEmitter.cpp Rework our internal representation of node predicates to expose more 2011-04-17 21:38:24 +00:00
DAGISelMatcherGen.cpp Give CodeGenRegisterClass a real sorted member set. 2011-06-15 04:50:36 +00:00
DAGISelMatcherOpt.cpp Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
DisassemblerEmitter.cpp Add support for the VIA PadLock instructions. 2011-04-04 16:58:13 +00:00
DisassemblerEmitter.h
EDEmitter.cpp Fix ssat and ssat16 encodings for ARM and Thumb. The bit position value 2011-05-31 03:33:27 +00:00
EDEmitter.h
FastISelEmitter.cpp Move the list of register classes into CodeGenRegBank as well. 2011-06-15 00:20:40 +00:00
FastISelEmitter.h
FixedLenDecoderEmitter.cpp Enhance the fixed-length disassembler to support the callbacks necessary for symbolic disassembly. 2011-04-18 18:42:26 +00:00
FixedLenDecoderEmitter.h Add FixedLenDecoderEmitter, the skeleton of a new disassembler emitter for fixed-length instruction encodings. 2011-02-18 21:51:29 +00:00
InstrEnumEmitter.cpp
InstrEnumEmitter.h
InstrInfoEmitter.cpp Give CodeGenRegisterClass a real sorted member set. 2011-06-15 04:50:36 +00:00
InstrInfoEmitter.h
IntrinsicEmitter.cpp Change how tblgen generates attributes for intrinsics to use a single 2011-05-28 06:31:34 +00:00
IntrinsicEmitter.h
LLVMCConfigurationEmitter.cpp llvmc: Make it possible to provide an argument to (join). 2011-05-05 04:24:58 +00:00
LLVMCConfigurationEmitter.h
Makefile
NeonEmitter.cpp Add special-case range checking for VCVT_N intrinsic immediate operands. 2011-06-09 16:57:29 +00:00
NeonEmitter.h Use intrinsics for Neon vmull operations. Radar 9208957. 2011-03-31 00:09:35 +00:00
OptParserEmitter.cpp Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
OptParserEmitter.h
Record.cpp Rework the logic to not rely on undefined behaviour (1LL << 64). Also simplify. 2011-06-03 08:25:39 +00:00
Record.h now that predicates have a decent abstraction layer on them, introduce a new 2011-04-17 22:05:17 +00:00
RegisterInfoEmitter.cpp Replace the statically generated hashtables for checking register relationships with just scanning the (typically tiny) static lists. 2011-06-15 06:53:50 +00:00
RegisterInfoEmitter.h
SetTheory.cpp Drop a RecordKeeper reference that wasn't necessary. 2011-06-04 07:49:55 +00:00
SetTheory.h Drop a RecordKeeper reference that wasn't necessary. 2011-06-04 07:49:55 +00:00
StringMatcher.cpp
StringMatcher.h
StringToOffsetTable.h
SubtargetEmitter.cpp Increase SubtargetFeatureKV Value and Implies fields to 64 bits since some targets are getting very close to 32 subtarget features. Also teach tablegen to error when there are more than 64 features to guard against undefined behavior. rdar://9282332 2011-04-15 19:35:46 +00:00
SubtargetEmitter.h Add annotations to tablegen-generated processor itineraries, or replace them with something meaningful. I want to be able to read and debug the generated tables. 2011-04-01 02:22:47 +00:00
TableGen.cpp Drop a RecordKeeper reference that wasn't necessary. 2011-06-04 07:49:55 +00:00
TableGenBackend.cpp
TableGenBackend.h
TGLexer.cpp Add new -d option to tblgen. It writes a make(1)-style dependency file. 2011-06-01 13:10:15 +00:00
TGLexer.h Add new -d option to tblgen. It writes a make(1)-style dependency file. 2011-06-01 13:10:15 +00:00
TGParser.cpp Add missing 'return on failure'. Previously we'd crash after emitting 2011-03-11 19:52:52 +00:00
TGParser.h Add new -d option to tblgen. It writes a make(1)-style dependency file. 2011-06-01 13:10:15 +00:00
TGValueTypes.cpp Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
X86DisassemblerShared.h
X86DisassemblerTables.cpp Add support for the VIA PadLock instructions. 2011-04-04 16:58:13 +00:00
X86DisassemblerTables.h Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
X86ModRMFilters.h
X86RecognizableInstr.cpp Add support for the VIA PadLock instructions. 2011-04-04 16:58:13 +00:00
X86RecognizableInstr.h X86 table-generator and disassembler support for the AVX 2011-03-15 01:23:15 +00:00