llvm-6502/include/llvm/Support
Jim Grosbach fc1a161d76 Switch the fixed-length disassembler to be table-driven.
Refactor the TableGen'erated fixed length disassemblmer to use a
table-driven state machine rather than a massive set of nested
switch() statements.

As a result, the ARM Disassembler (ARMDisassembler.cpp) builds much more
quickly and generates a smaller end result. For a Release+Asserts build on
a 16GB 3.4GHz i7 iMac w/ SSD:

Time to compile at -O2 (averaged w/ hot caches):
  Previous: 35.5s
  New:       8.9s

TEXT size:
  Previous: 447,251
  New:      297,661

Builds in 25% of the time previously required and generates code 66% of
the size.

Execution time of the disassembler is only slightly slower (7% disassembling
10 million ARM instructions, 19.6s vs 21.0s). The new implementation has
not yet been tuned, however, so the performance should almost certainly
be recoverable should it become a concern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161888 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-14 19:06:05 +00:00
..
AIXDataTypesFix.h
AlignOf.h Just remove generic support for C++11 alignas -- GCC is already 2012-06-25 05:20:13 +00:00
Allocator.h Revert r159789. 2012-07-06 16:42:25 +00:00
Atomic.h
BlockFrequency.h
BranchProbability.h
CallSite.h add CallSite/CallInst/InvokeInst::hasFnAttr() 2012-06-25 16:16:58 +00:00
Capacity.h
Casting.h
CFG.h
circular_raw_ostream.h
CodeGen.h Move the TLSModel information into the TargetMachine rather than hiding 2012-04-08 17:20:55 +00:00
COFF.h Add yaml2obj. A utility to convert YAML to binaries. 2012-08-02 19:16:56 +00:00
CommandLine.h Initializers for some fields were missing in Option::Option 2012-07-13 12:55:23 +00:00
Compiler.h Fix few warnings. 2012-07-20 21:30:52 +00:00
ConstantFolder.h
ConstantRange.h add ConstantRange::difference (to perform set difference/relative complement) 2012-06-28 16:10:13 +00:00
CrashRecoveryContext.h
DataExtractor.h
DataFlow.h Fix build of DataFlow.h 2010-08-04 09:30:20 +00:00
DataStream.h
DataTypes.h.cmake Remove OpenBSD defines: 2012-08-08 18:37:39 +00:00
DataTypes.h.in Remove OpenBSD defines: 2012-08-08 18:37:39 +00:00
Debug.h Typos. 2012-07-27 21:41:59 +00:00
DebugLoc.h Pull the simple parts of DenseMapInfo<DebugLoc> inline and prune includes. 2012-07-19 15:00:34 +00:00
Disassembler.h
DOTGraphTraits.h Delete names for unused parameters in inline function definitions in headers, so LLVM users can compile with -Wunused-parameter. PR11257; based on patch by Kevin Harris. 2011-11-04 18:11:56 +00:00
Dwarf.h Lowercase the tag name to match the rest of dwarf. 2012-03-29 21:35:05 +00:00
DynamicLibrary.h
ELF.h Add some missed ELF constants definitions: 2012-07-18 14:12:32 +00:00
Endian.h Remove 'static' from inline functions defined in header files. 2012-06-20 08:39:33 +00:00
Errno.h Now to chant the magical incantation that will exorcise the System library 2010-11-29 19:44:50 +00:00
ErrorHandling.h
FEnv.h
FileOutputBuffer.h Initial commit of new FileOutputBuffer support class. 2012-08-01 02:29:50 +00:00
FileSystem.h Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
FileUtilities.h
Format.h
FormattedStream.h
GCOV.h Remove tabs. 2012-07-19 00:01:00 +00:00
GetElementPtrTypeIterator.h
GraphWriter.h Fixed few warnings. 2012-07-19 04:50:12 +00:00
Host.h
IncludeFile.h
InstIterator.h
InstVisitor.h Extend the InstVisitor to visit the specialized classes wrapping 2012-07-30 23:45:06 +00:00
IntegersSubset.h Revert "IntRange:" as it appears to be breaking self hosting. 2012-07-02 23:22:21 +00:00
IntegersSubsetMapping.h Reverted r159658: 2012-07-04 06:07:06 +00:00
IRReader.h
LeakDetector.h
LEB128.h Switch the fixed-length disassembler to be table-driven. 2012-08-14 19:06:05 +00:00
LICENSE.TXT
Locale.h platform support for counting column widths and checking isprint 2012-04-17 20:03:03 +00:00
LockFileManager.h
MachO.h Remove tabs. 2012-07-19 00:01:00 +00:00
ManagedStatic.h
MathExtras.h Remove 'static' from inline functions defined in header files. 2012-06-20 08:39:33 +00:00
Memory.h
MemoryBuffer.h
MemoryObject.h
Mutex.h
MutexGuard.h
NoFolder.h
OutputBuffer.h
PassNameParser.h
Path.h
PathV1.h
PathV2.h Convert comments to proper Doxygen comments. 2012-06-09 00:01:45 +00:00
PatternMatch.h
PluginLoader.h
PointerLikeTypeTraits.h
PredIteratorCache.h
PrettyStackTrace.h
Process.h Process: Add sys::Process::FileDescriptorHasColors(). 2012-07-20 18:29:38 +00:00
Program.h
raw_os_ostream.h
raw_ostream.h Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
Recycler.h
RecyclingAllocator.h
Regex.h
Registry.h
RegistryParser.h
RWMutex.h
SaveAndRestore.h
Signals.h
SMLoc.h Remove some trivial copy ctors so the classes become trivially copyable and get the optimized SmallVector implementation. 2012-07-08 19:47:51 +00:00
Solaris.h
SourceMgr.h fix warnings when compiling with -Wshadow 2012-05-18 18:39:06 +00:00
StreamableMemoryObject.h
StringPool.h
SwapByteOrder.h
system_error.h
SystemUtils.h
TargetFolder.h
TargetRegistry.h Allow MCCodeEmitter access to the target MCRegisterInfo. 2012-05-15 17:35:52 +00:00
TargetSelect.h
Threading.h
ThreadLocal.h Remove use of GNU extension to resolve Clang warning. 2012-06-12 17:06:32 +00:00
Timer.h
TimeValue.h
ToolOutputFile.h
type_traits.h If the __is_trivially_copyable type trait is available use it as the baseline for isPodLike. 2012-04-28 16:22:31 +00:00
Valgrind.h
ValueHandle.h LICM uses AliasSet information to hoist and sink instructions. However, other passes, such as LoopRotate 2012-08-13 23:06:54 +00:00
Win64EH.h
YAMLParser.h Convert comments to proper Doxygen comments. 2012-06-09 00:01:45 +00:00