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 Make member variables of AsmToken private. Remove unnecessary forward declarations. Remove an unnecessary include. 2012-04-15 22:00:22 +00:00
EDInstInfo.h Tidy up. Trailing whitespace. 2012-05-11 01:39:13 +00:00
MachineLocation.h Tidy up. Trailing whitespace. 2012-05-11 01:39:13 +00:00
MCAsmBackend.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
MCAsmInfo.h Remove another duplicated variable. We only need one to tell us if the linker 2012-06-22 13:32:49 +00:00
MCAsmInfoCOFF.h
MCAsmInfoDarwin.h
MCAsmLayout.h
MCAssembler.h Fix an overzealous assertion. It is legitimate for a target to have multiple fixups on a single instruction that target the same byte, so long as their bit-offsets are coordinates appropriately. 2012-07-05 22:30:42 +00:00
MCAtom.h
MCCodeEmitter.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
MCCodeGenInfo.h
MCContext.h Refactor data-in-code annotations. 2012-05-18 19:12:01 +00:00
MCDirectives.h Refactor data-in-code annotations. 2012-05-18 19:12:01 +00:00
MCDisassembler.h Tidy up. Trailing whitespace. 2012-05-11 01:39:13 +00:00
MCDwarf.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
MCELFObjectWriter.h The ELF relocation record format is different for N64 2012-06-27 22:28:30 +00:00
MCELFSymbolFlags.h
MCExpr.h Add VK_Mips_HIGHER and VK_Mips_HIGHEST to MCSymbolRefExpr::VariantKind. 2012-07-21 02:15:19 +00:00
MCFixedLenDisassembler.h Switch the fixed-length disassembler to be table-driven. 2012-08-14 19:06:05 +00:00
MCFixup.h
MCFixupKindInfo.h Tidy up. Trailing whitespace. 2012-05-11 01:39:13 +00:00
MCInst.h
MCInstPrinter.h Move getOpcodeName from the various target InstPrinters into the superclass MCInstPrinter. 2012-04-02 08:32:38 +00:00
MCInstrAnalysis.h
MCInstrDesc.h
MCInstrInfo.h
MCInstrItineraries.h I'm introducing a new machine model to simultaneously allow simple 2012-07-07 04:00:00 +00:00
MCLabel.h
MCMachObjectWriter.h Refactor data-in-code annotations. 2012-05-18 19:12:01 +00:00
MCMachOSymbolFlags.h
MCModule.h
MCObjectFileInfo.h Tidy up. Trailing whitespace. 2012-05-11 01:39:13 +00:00
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 Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
MCSectionCOFF.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
MCSectionELF.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
MCSectionMachO.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
MCStreamer.h EmitZerofill should take a 64-bit size or else it's chopping off large zero-filled global. rdar://11729134 2012-06-22 20:14:46 +00:00
MCSubtargetInfo.h I'm introducing a new machine model to simultaneously allow simple 2012-07-07 04:00:00 +00:00
MCSymbol.h
MCTargetAsmLexer.h Tidy up. Trailing whitespace. 2012-05-11 01:39:13 +00:00
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 Tidy up. Trailing whitespace. 2012-05-11 01:39:13 +00:00