llvm-6502/include/llvm/MC
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
..
MCParser
EDInstInfo.h
MachineLocation.h
MCAsmBackend.h
MCAsmInfo.h
MCAsmInfoCOFF.h
MCAsmInfoDarwin.h
MCAsmLayout.h
MCAssembler.h
MCAtom.h
MCCodeEmitter.h
MCCodeGenInfo.h
MCContext.h
MCDirectives.h
MCDisassembler.h
MCDwarf.h
MCELFObjectWriter.h
MCELFSymbolFlags.h
MCExpr.h
MCFixedLenDisassembler.h Switch the fixed-length disassembler to be table-driven. 2012-08-14 19:06:05 +00:00
MCFixup.h
MCFixupKindInfo.h
MCInst.h
MCInstPrinter.h
MCInstrAnalysis.h
MCInstrDesc.h
MCInstrInfo.h
MCInstrItineraries.h
MCLabel.h
MCMachObjectWriter.h
MCMachOSymbolFlags.h
MCModule.h
MCObjectFileInfo.h
MCObjectStreamer.h
MCObjectWriter.h Move [SU]LEB128 encoding to a utility header. 2012-08-08 23:56:06 +00:00
MCRegisterInfo.h Give MCRegisterInfo an implementation file. 2012-07-27 16:25:20 +00:00
MCSchedule.h Added MispredictPenalty to SchedMachineModel. 2012-08-08 02:44:16 +00:00
MCSection.h
MCSectionCOFF.h
MCSectionELF.h
MCSectionMachO.h
MCStreamer.h
MCSubtargetInfo.h
MCSymbol.h
MCTargetAsmLexer.h
MCTargetAsmParser.h [ms-inline asm] Extend the MC AsmParser API to match MCInsts (but not emit). 2012-08-09 22:04:55 +00:00
MCValue.h
MCWin64EH.h
MCWinCOFFObjectWriter.h
SectionKind.h
SubtargetFeature.h