llvm-6502/utils/TableGen
Evan Cheng e41bf82107 Allow more loads to be folded which were previously prevented from happening
due to ordering issue. i.e. they were selected for chain use first.
Now at load select time, check if it is being selected for a chain use and if
it has only a single real use. If so, return a HANDLENODE (with the load as
its operand) in its place and record it.
When it is folded or the load is selected for a real use, the isel records it
as the replacement for the HANDLENODE. The replacement is done when all nodes
are selected.
This scheme exposed a couple of problems where cycles can happen. (See comments
in EmitMatchCode() for descriptions of the problems and their workaround /
solutions.) These problems have been resolved with a small compile time
penality.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25995 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 06:43:12 +00:00
..
.cvsignore Implement PR614: 2005-08-27 18:50:39 +00:00
AsmWriterEmitter.cpp add a note, ya knoe 2006-02-01 19:12:23 +00:00
AsmWriterEmitter.h Remove trailing whitespace 2005-04-22 00:00:37 +00:00
CodeEmitterGen.cpp Don't emit JIT code for these instructions 2006-01-27 01:39:38 +00:00
CodeEmitterGen.h Remove trailing whitespace 2005-04-22 00:00:37 +00:00
CodeGenInstruction.h * Remove instruction fields hasInFlag / hasOutFlag and added SNDPInFlag and 2006-01-09 18:27:06 +00:00
CodeGenRegisters.h Add support for generating v4i32 altivec code 2005-12-30 00:12:56 +00:00
CodeGenTarget.cpp PHI and INLINEASM are now builtin instructions provided by Target.td 2006-01-27 01:45:06 +00:00
CodeGenTarget.h PHI and INLINEASM are now builtin instructions provided by Target.td 2006-01-27 01:45:06 +00:00
DAGISelEmitter.cpp Allow more loads to be folded which were previously prevented from happening 2006-02-05 06:43:12 +00:00
DAGISelEmitter.h Allow more loads to be folded which were previously prevented from happening 2006-02-05 06:43:12 +00:00
FileLexer.cpp Regenerated the Lex and Yacc output files on Linux. It seems that our 2006-01-17 17:01:34 +00:00
FileLexer.l Tighten up the specification to allow TableGen/nested-comment.td to pass 2005-09-06 21:23:09 +00:00
FileParser.cpp Regenerated the Lex and Yacc output files on Linux. It seems that our 2006-01-17 17:01:34 +00:00
FileParser.h Regenerated the Lex and Yacc output files on Linux. It seems that our 2006-01-17 17:01:34 +00:00
FileParser.y implement test/Regression/TableGen/DagIntSubst.ll 2006-01-31 06:02:35 +00:00
InstrInfoEmitter.cpp If we want to emit things in enum order, use getInstructionsByEnumValue to 2006-01-27 01:44:09 +00:00
InstrInfoEmitter.h Emit itinerary class in instruction info. 2005-10-31 17:16:46 +00:00
Makefile Implement PR614: 2005-08-27 18:50:39 +00:00
Record.cpp implement test/Regression/TableGen/DagIntSubst.ll 2006-01-31 06:02:35 +00:00
Record.h implement test/Regression/TableGen/DagIntSubst.ll 2006-01-31 06:02:35 +00:00
RegisterInfoEmitter.cpp This gets most of the backends building with HP HappyC++. 2005-12-27 10:56:22 +00:00
RegisterInfoEmitter.h Remove trailing whitespace 2005-04-22 00:00:37 +00:00
SubtargetEmitter.cpp Subtarget feature can now set any variable to any value 2006-01-27 08:09:42 +00:00
SubtargetEmitter.h Allow itineraries to be passed through the Target Machine. 2005-11-01 20:06:59 +00:00
TableGen.cpp more standards-compliance stuff 2005-12-26 05:08:55 +00:00
TableGenBackend.cpp Remove trailing whitespace 2005-04-22 00:00:37 +00:00
TableGenBackend.h Remove trailing whitespace 2005-04-22 00:00:37 +00:00