llvm-6502/utils/TableGen
Daniel Dunbar 20927f26fc llvm-mc/AsmMatcher: Move to a slightly more sane matching design.
- Still not very sane, but a least its not 60k lines on X86. :)

 - In terms of correctness, currently some things are hard wired for X86, and we
   still don't properly resolve ambiguities (this is ignoring the instructions
   we don't even match due to funny .td stuff or other corner cases).

The high level changes:
 1. Represent tokens which are significant for matching explicitly as separate
    operands. This uniformly handles not only the instruction mnemonic, but
    also 'signficiant' syntax like the '*' in "call * ...".

 2. Separate the matching of operands to an instruction from the construction of
    the MCInst. In theory this can be done during matching, but since the number
    of variations is small I think it makes sense to decompose the problems.

 3. Improved a few of the mechanisms to at least successfully flatten / tokenize
    the assembly strings for PowerPC and ARM.

 4. The comment at the top of AsmMatcherEmitter.cpp explains the approach I'm
    moving towards for handling ambiguous instructions. The high-bit is to infer
    a partial ordering of the operand classes (and force the user to specify one
    if we can't) and use that to resolve ambiguities.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78378 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 08:26:05 +00:00
..
AsmMatcherEmitter.cpp llvm-mc/AsmMatcher: Move to a slightly more sane matching design. 2009-08-07 08:26:05 +00:00
AsmMatcherEmitter.h Stub out assembly matcher (.s -> MCInst) tblgen backend. 2009-07-11 19:39:44 +00:00
AsmWriterEmitter.cpp Suppress compiler warning. 2009-08-05 21:42:40 +00:00
AsmWriterEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
CallingConvEmitter.cpp Add 'Indirect' LocInfo class and use to pass __m128 on win64. Also minore fixes here and there (mostly __m64). 2009-08-03 08:13:56 +00:00
CallingConvEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
ClangDiagnosticsEmitter.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
ClangDiagnosticsEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
CMakeLists.txt Update CMakeLists.txt 2009-07-11 21:53:14 +00:00
CodeEmitterGen.cpp Convert more abort() calls to llvm_report_error(). 2009-07-08 19:04:27 +00:00
CodeEmitterGen.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
CodeGenDAGPatterns.cpp make ptr_rc derive from a new PointerLikeRegClass tblgen class. 2009-07-29 20:43:05 +00:00
CodeGenDAGPatterns.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
CodeGenInstruction.cpp Make BinOps typed and require a type specifier for !nameconcat. This 2009-04-23 21:25:15 +00:00
CodeGenInstruction.h Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning. 2008-12-03 18:15:48 +00:00
CodeGenIntrinsics.h fix a few spelling errors and typos 2009-03-26 16:17:51 +00:00
CodeGenRegisters.h Wrap MVT::ValueType in a struct to get type safety 2008-06-06 12:08:01 +00:00
CodeGenTarget.cpp Match X86 register names to number. 2009-07-29 00:02:19 +00:00
CodeGenTarget.h Match X86 register names to number. 2009-07-29 00:02:19 +00:00
DAGISelEmitter.cpp Remove itohexstr, which only had one user. 2009-07-30 18:18:54 +00:00
DAGISelEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
FastISelEmitter.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
FastISelEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
InstrEnumEmitter.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
InstrEnumEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
InstrInfoEmitter.cpp 1. Introduce a new TargetOperandInfo::getRegClass() helper method 2009-07-29 21:10:12 +00:00
InstrInfoEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
IntrinsicEmitter.cpp Privatize the StructType table, which unfortunately involves routing contexts through a number of APIs. 2009-08-05 23:16:16 +00:00
IntrinsicEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
LLVMCConfigurationEmitter.cpp Add an 'init' option property. 2009-07-07 16:08:41 +00:00
LLVMCConfigurationEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
Makefile Change 'make install' to install tblgen, for better support of out-of-tree targets, 2009-05-08 17:32:47 +00:00
Record.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
Record.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
RegisterInfoEmitter.cpp Minor whitespace tidiness. 2009-07-30 01:33:17 +00:00
RegisterInfoEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
SubtargetEmitter.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
SubtargetEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
TableGen.cpp Add a Force option to raw_fd_ostream to specify whether opening 2009-07-15 17:29:42 +00:00
TableGenBackend.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
TableGenBackend.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
TGLexer.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
TGLexer.h prune #include, fix warning. 2009-06-21 05:33:06 +00:00
TGParser.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
TGParser.h move include searching logic from TGLexer to SourceMgr. 2009-06-21 05:06:04 +00:00
TGValueTypes.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00