llvm-project/llvm/utils/TableGen
Chris Lattner c577b816fc Teach the grouper some simple tricks about looking contradictory
predicates.  For example if we have:

Scope:
  CheckType i32
    ABC
  CheckType f32
    DEF
  CheckType i32
    GHI

Then we know that we can transform this into:
Scope:
  CheckType i32
    Scope
      ABC
      GHI
  CheckType f32
    DEF

This reorders the check for the 'GHI' predicate above
the check for the 'DEF' predidate.  However it is safe to do this
in this situation because we know that a node cannot have both an
i32 and f32 type.

We're now doing more factoring that the old isel did.

llvm-svn: 97312
2010-02-27 07:49:13 +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 Stub out assembly matcher (.s -> MCInst) tblgen backend. 2009-07-11 19:39:44 +00:00
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
CMakeLists.txt The new isel passes all tests, time to start making it go fast. 2010-02-24 07:06:50 +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 Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
ClangDiagnosticsEmitter.cpp Use raw_ostream::write_escaped instead of EscapeString. 2009-10-17 20:43:19 +00:00
ClangDiagnosticsEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +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 use DEBUG instead of DebugFlag directly so that this 2010-02-27 06:51:44 +00:00
CodeGenDAGPatterns.h merge some code. 2010-02-23 06:16:51 +00:00
CodeGenInstruction.cpp Introduce a new CodeGenInstruction::ConstraintInfo class 2010-02-10 01:45:28 +00:00
CodeGenInstruction.h work around a gcc bug with -Wuninitialized. 2010-02-10 21:22:51 +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 move target-independent opcodes out of TargetInstrInfo 2010-02-09 19:54:29 +00:00
CodeGenTarget.h Remove the CPAttrParentAsRoot code, which is unused, and inconvenient 2010-01-04 20:31:55 +00:00
DAGISelEmitter.cpp change the scope node to include a list of children to be checked 2010-02-25 19:00:39 +00:00
DAGISelEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
DAGISelMatcher.cpp Teach the grouper some simple tricks about looking contradictory 2010-02-27 07:49:13 +00:00
DAGISelMatcher.h Teach the grouper some simple tricks about looking contradictory 2010-02-27 07:49:13 +00:00
DAGISelMatcherEmitter.cpp add some helpful comments to the emitter 2010-02-26 08:15:02 +00:00
DAGISelMatcherGen.cpp rename fooMatcherNode to fooMatcher. 2010-02-25 02:04:40 +00:00
DAGISelMatcherOpt.cpp Teach the grouper some simple tricks about looking contradictory 2010-02-27 07:49:13 +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 Updated the enhanced disassembly library's TableGen 2010-02-10 03:23:23 +00:00
EDEmitter.h Added a custom TableGen backend to support the 2010-01-29 00:21:04 +00:00
FastISelEmitter.cpp Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen 2010-01-05 22:26:32 +00:00
FastISelEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
InstrEnumEmitter.cpp fix this to work more determinstically, patch by Thomas Veith! 2010-02-19 07:02:20 +00:00
InstrEnumEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
InstrInfoEmitter.cpp Introduce a new CodeGenInstruction::ConstraintInfo class 2010-02-10 01:45:28 +00:00
InstrInfoEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
IntrinsicEmitter.cpp Partially address a README by having functionattrs consider calls to 2010-01-06 08:45:52 +00:00
IntrinsicEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
LLVMCConfigurationEmitter.cpp Trailing whitespace. 2010-02-23 09:05:01 +00:00
LLVMCConfigurationEmitter.h This variable is never used. 2009-10-17 20:08:47 +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
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 Add an !eq() operator to TableGen. It operates on strings only. 2010-01-05 19:11:42 +00:00
RegisterInfoEmitter.cpp Remove unneeded ';' and a class/struct mismatch (noticed by clang). 2009-12-09 02:58:09 +00:00
RegisterInfoEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
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
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 move include searching logic from TGLexer to SourceMgr. 2009-06-21 05:06:04 +00:00
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
TableGen.cpp Added a custom TableGen backend to support the 2010-01-29 00:21:04 +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
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 Changed the table generator so that the X86 2010-02-24 02:56:25 +00:00
X86RecognizableInstr.h Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit 2009-12-19 02:59:52 +00:00