llvm/utils/TableGen
Chris Lattner 2cacec55f9 Completely rewrite tblgen's type inference mechanism,
changing the primary datastructure from being a 
"std::vector<unsigned char>" to being a new TypeSet class
that actually has (gasp) invariants!

This changes more things than I remember, but one major
innovation here is that it enforces that named input 
values agree in type with their output values.

This also eliminates code that transparently assumes (in 
some cases) that SDNodeXForm input/output types are the
same, because this is wrong in many case.

This also eliminates a bug which caused a lot of ambiguous
patterns to go undetected, where a register class would
sometimes pick the first possible type, causing an
ambiguous pattern to get arbitrary results.

With all the recent target changes, this causes no 
functionality change!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98534 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 06:00:16 +00:00
..
AsmMatcherEmitter.cpp MC: Fix bug where trailing tied operands were forgotten; the X86 assembler 2010-02-12 01:46:54 +00:00
AsmMatcherEmitter.h
AsmWriterEmitter.cpp enhance llvm-mc -show-inst to print the enum of an instruction, like so: 2010-02-11 22:57:32 +00:00
AsmWriterEmitter.h enhance llvm-mc -show-inst to print the enum of an instruction, like so: 2010-02-11 22:57:32 +00:00
AsmWriterInst.cpp Changed AsmWriterOperand to also include the index of the 2010-02-10 02:27:43 +00:00
AsmWriterInst.h Changed AsmWriterOperand to also include the index of the 2010-02-10 02:27:43 +00:00
CallingConvEmitter.cpp Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. 2009-08-12 00:36:31 +00:00
CallingConvEmitter.h
ClangDiagnosticsEmitter.cpp Use raw_ostream::write_escaped instead of EscapeString. 2009-10-17 20:43:19 +00:00
ClangDiagnosticsEmitter.h
CMakeLists.txt The new isel passes all tests, time to start making it go fast. 2010-02-24 07:06:50 +00:00
CodeEmitterGen.cpp move target-independent opcodes out of TargetInstrInfo 2010-02-09 19:54:29 +00:00
CodeEmitterGen.h Revert 90628, which was incorrect. 2009-12-15 20:21:44 +00:00
CodeGenDAGPatterns.cpp Completely rewrite tblgen's type inference mechanism, 2010-03-15 06:00:16 +00:00
CodeGenDAGPatterns.h Completely rewrite tblgen's type inference mechanism, 2010-03-15 06:00:16 +00:00
CodeGenInstruction.cpp The mayHaveSideEffects flag is no longer used. 2010-02-27 23:47:46 +00:00
CodeGenInstruction.h The mayHaveSideEffects flag is no longer used. 2010-02-27 23:47:46 +00:00
CodeGenIntrinsics.h Split EVT into MVT and EVT, the former representing _just_ a primitive type, while 2009-08-11 20:47:22 +00:00
CodeGenRegisters.h Split EVT into MVT and EVT, the former representing _just_ a primitive type, while 2009-08-11 20:47:22 +00:00
CodeGenTarget.cpp Completely rewrite tblgen's type inference mechanism, 2010-03-15 06:00:16 +00:00
CodeGenTarget.h Completely rewrite tblgen's type inference mechanism, 2010-03-15 06:00:16 +00:00
DAGISelEmitter.cpp Completely rewrite tblgen's type inference mechanism, 2010-03-15 06:00:16 +00:00
DAGISelEmitter.h optimize tblgen compile time by eliminating the old isel. 2010-03-01 21:49:54 +00:00
DAGISelMatcher.cpp add some helper functions and implement isContradictory 2010-03-07 06:29:26 +00:00
DAGISelMatcher.h add some helper functions and implement isContradictory 2010-03-07 06:29:26 +00:00
DAGISelMatcherEmitter.cpp so hey, it turns out that the histogram was completely wrong, because 2010-03-04 01:34:29 +00:00
DAGISelMatcherGen.cpp Completely rewrite tblgen's type inference mechanism, 2010-03-15 06:00:16 +00:00
DAGISelMatcherOpt.cpp turn off debug spew 2010-03-07 07:21:24 +00:00
DisassemblerEmitter.cpp Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit 2009-12-19 02:59:52 +00:00
DisassemblerEmitter.h Sketch TableGen disassembler emitter, based on patch by Sean Callanan. 2009-11-25 02:13:23 +00:00
EDEmitter.cpp Check in tablegen changes to fix disassembler related failures caused by r98465. 2010-03-14 05:15:39 +00:00
EDEmitter.h Added a custom TableGen backend to support the 2010-01-29 00:21:04 +00:00
FastISelEmitter.cpp Completely rewrite tblgen's type inference mechanism, 2010-03-15 06:00:16 +00:00
FastISelEmitter.h
InstrEnumEmitter.cpp fix this to work more determinstically, patch by Thomas Veith! 2010-02-19 07:02:20 +00:00
InstrEnumEmitter.h
InstrInfoEmitter.cpp Introduce a new CodeGenInstruction::ConstraintInfo class 2010-02-10 01:45:28 +00:00
InstrInfoEmitter.h
IntrinsicEmitter.cpp Partially address a README by having functionattrs consider calls to 2010-01-06 08:45:52 +00:00
IntrinsicEmitter.h
LLVMCConfigurationEmitter.cpp Make it not an error to specify -O* options several times. 2010-03-05 04:46:39 +00:00
LLVMCConfigurationEmitter.h This variable is never used. 2009-10-17 20:08:47 +00:00
Makefile
OptParserEmitter.cpp tblgen/OptParser: Use EmitSourceFileHeader. 2010-01-04 22:03:51 +00:00
OptParserEmitter.h TableGen: Add initial backend for clang Driver's option parsing. 2009-11-18 21:29:51 +00:00
Record.cpp Add an !eq() operator to TableGen. It operates on strings only. 2010-01-05 19:11:42 +00:00
Record.h Fix PR2590 by making PatternSortingPredicate actually be 2010-03-01 22:09:11 +00:00
RegisterInfoEmitter.cpp Remove unneeded ';' and a class/struct mismatch (noticed by clang). 2009-12-09 02:58:09 +00:00
RegisterInfoEmitter.h
StringToOffsetTable.h Use raw_ostream::write_escaped instead of EscapeString. 2009-10-17 20:43:19 +00:00
SubtargetEmitter.cpp Have TableGen emit code that uses dbgs() rather than errs(). 2010-01-05 17:47:41 +00:00
SubtargetEmitter.h Extend the instruction itinerary model to include the ability to indicate the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed. 2009-08-17 16:02:57 +00:00
TableGen.cpp Added a custom TableGen backend to support the 2010-01-29 00:21:04 +00:00
TableGenBackend.cpp
TableGenBackend.h
TGLexer.cpp Add an !eq() operator to TableGen. It operates on strings only. 2010-01-05 19:11:42 +00:00
TGLexer.h Add an !eq() operator to TableGen. It operates on strings only. 2010-01-05 19:11:42 +00:00
TGParser.cpp Add an !eq() operator to TableGen. It operates on strings only. 2010-01-05 19:11:42 +00:00
TGParser.h
TGValueTypes.cpp Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. 2009-08-12 00:36:31 +00:00
X86DisassemblerShared.h fix build and while at it remove a redudant include 2009-12-19 11:52:18 +00:00
X86DisassemblerTables.cpp Suppress compiler warning. 2009-12-23 00:45:10 +00:00
X86DisassemblerTables.h Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit 2009-12-19 02:59:52 +00:00
X86ModRMFilters.h Add missing newlines at EOF (for clang++). 2009-12-19 04:16:48 +00:00
X86RecognizableInstr.cpp Check in tablegen changes to fix disassembler related failures caused by r98465. 2010-03-14 05:15:39 +00:00
X86RecognizableInstr.h Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit 2009-12-19 02:59:52 +00:00