llvm-6502/utils/TableGen
Chris Lattner 283d1ceb57 Switch pattern sorting predicate from stable sort -> sort, it
doesn't need to be stable because the patterns are fully ordered.

Add a first level sort predicate that orders patterns in this
order:  1) scalar integer operations 2) scalar floating point 
3) vector int 4) vector float.  This is a trivial sort on their
top level pattern type so it is nice and transitive.  The
benefit of doing this is that simple integer operations are
much more common than insane vector things and isel was trying
to match the big complex vector patterns before the simple
ones because the complexity of the vector operations was much
higher.  Since they can't both match, it is best (for compile
time) to try the simple integer ones first.

This cuts down the # failed match attempts on real code by
quite a bit, for example, this reduces backtracks on crafty
(as a random example) from 228285 -> 188369.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99797 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-29 02:02:45 +00:00
..
AsmMatcherEmitter.cpp change Target.getInstructionsByEnumValue to return a reference 2010-03-19 00:34:35 +00:00
AsmMatcherEmitter.h
AsmWriterEmitter.cpp make inst_begin/inst_end iterate over InstructionsByEnumValue. 2010-03-19 01:00:55 +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
CallingConvEmitter.h
ClangDiagnosticsEmitter.cpp Add an extra newline to separate PP directives from the contents 2010-03-18 13:16:38 +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 change Target.getInstructionsByEnumValue to return a reference 2010-03-19 00:34:35 +00:00
CodeEmitterGen.h Revert 90628, which was incorrect. 2009-12-15 20:21:44 +00:00
CodeGenDAGPatterns.cpp print the complexity of the pattern being matched in the 2010-03-29 01:40:38 +00:00
CodeGenDAGPatterns.h print the complexity of the pattern being matched in the 2010-03-29 01:40:38 +00:00
CodeGenInstruction.cpp hoist some funky logic into CodeGenInstruction 2010-03-27 20:09:24 +00:00
CodeGenInstruction.h hoist some funky logic into CodeGenInstruction 2010-03-27 20:09:24 +00:00
CodeGenIntrinsics.h
CodeGenRegisters.h
CodeGenTarget.cpp fix CodeGenTarget::getRegisterVTs to not return the 2010-03-27 20:32:26 +00:00
CodeGenTarget.h add a new SDNPVariadic SDNP node flag, and use it in 2010-03-19 05:07:09 +00:00
DAGISelEmitter.cpp Switch pattern sorting predicate from stable sort -> sort, it 2010-03-29 02:02:45 +00:00
DAGISelEmitter.h optimize tblgen compile time by eliminating the old isel. 2010-03-01 21:49:54 +00:00
DAGISelMatcher.cpp add plumbing for handling multiple result nodes 2010-03-24 00:41:19 +00:00
DAGISelMatcher.h add plumbing for handling multiple result nodes 2010-03-24 00:41:19 +00:00
DAGISelMatcherEmitter.cpp print the complexity of the pattern being matched in the 2010-03-29 01:40:38 +00:00
DAGISelMatcherGen.cpp fix a long standing fixme, which required fixing a bunch of other 2010-03-27 20:45:15 +00:00
DAGISelMatcherOpt.cpp add plumbing for handling multiple result nodes 2010-03-24 00:41:19 +00:00
DisassemblerEmitter.cpp change Target.getInstructionsByEnumValue to return a reference 2010-03-19 00:34:35 +00:00
DisassemblerEmitter.h Sketch TableGen disassembler emitter, based on patch by Sean Callanan. 2009-11-25 02:13:23 +00:00
EDEmitter.cpp change Target.getInstructionsByEnumValue to return a reference 2010-03-19 00:34:35 +00:00
EDEmitter.h Added a custom TableGen backend to support the 2010-01-29 00:21:04 +00:00
FastISelEmitter.cpp add plumbing for handling multiple result nodes 2010-03-24 00:41:19 +00:00
FastISelEmitter.h
InstrEnumEmitter.cpp make inst_begin/inst_end iterate over InstructionsByEnumValue. 2010-03-19 01:00:55 +00:00
InstrEnumEmitter.h
InstrInfoEmitter.cpp Teach TableGen to understand X.Y notation in the TSFlagsFields strings. 2010-03-25 18:52:01 +00:00
InstrInfoEmitter.h
IntrinsicEmitter.cpp Change intrinsic result type for void to store it as an empty list 2010-03-22 20:56:36 +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 Teach TableGen to understand X.Y notation in the TSFlagsFields strings. 2010-03-25 18:52:01 +00:00
Record.h Teach TableGen to understand X.Y notation in the TSFlagsFields strings. 2010-03-25 18:52:01 +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
TableGen.cpp Remove an unnecessary #include. 2010-03-27 16:33:36 +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
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