llvm/utils/TableGen
Evan Cheng 481c8e0501 At top of generated isel SelectCode() is this:
if (!N.Val->hasOneUse()) {
    std::map<SDOperand, SDOperand>::iterator CGMI = CodeGenMap.find(N);
    if (CGMI != CodeGenMap.end()) return CGMI->second;
  }

Suppose a DAG like this:

           X
         ^   ^
        /     \
      USE1    USE2

Suppose USE1 is being selected first and during which X is selected and
returned a new node. After this, USE1 is no longer an use of X. During USE2
selection, X will be selected again since it has only one use!

The fix is to always query CodeGenMap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24679 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-12 23:22:48 +00:00
..
.cvsignore Implement PR614: 2005-08-27 18:50:39 +00:00
AsmWriterEmitter.cpp No longer track value types for asm printer operands, and remove them as 2005-11-30 18:54:35 +00:00
AsmWriterEmitter.h Remove trailing whitespace 2005-04-22 00:00:37 +00:00
CodeEmitterGen.cpp Fix an incompatibility with GCC 4.1, thanks to Vladimir Merzliakov 2005-10-24 15:04:15 +00:00
CodeEmitterGen.h Remove trailing whitespace 2005-04-22 00:00:37 +00:00
CodeGenInstruction.h * Commit the fix (by Chris) for a tblgen type inferencing bug. 2005-12-04 08:18:16 +00:00
CodeGenRegisters.h Add some methods 2005-12-05 02:35:08 +00:00
CodeGenTarget.cpp * Added an explicit type field to ComplexPattern. 2005-12-08 02:14:08 +00:00
CodeGenTarget.h * Added an explicit type field to ComplexPattern. 2005-12-08 02:14:08 +00:00
DAGISelEmitter.cpp At top of generated isel SelectCode() is this: 2005-12-12 23:22:48 +00:00
DAGISelEmitter.h Add a new SDTCisPtrTy constraint, which indicates that an operand must have 2005-12-09 22:57:42 +00:00
FileLexer.cpp Regenerate 2005-09-12 05:30:06 +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 Fix a warning 2005-09-30 06:09:50 +00:00
FileParser.h regenerate 2005-09-30 04:11:27 +00:00
FileParser.y Refactor this a bit to move ParsingTemplateArgs to only apply to classes, 2005-09-30 04:53:04 +00:00
InstrInfoEmitter.cpp Teach tblgen about instruction operands that have multiple MachineInstr 2005-11-19 07:05:57 +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 Fix some copy and paste typos. 2005-11-30 18:37:14 +00:00
Record.h Rename Record::getValueAsListDef to getValueAsListOfDefs, to more accurately 2005-10-28 22:49:02 +00:00
RegisterInfoEmitter.cpp Support multiple ValueTypes per RegisterClass, needed for upcoming vector 2005-12-01 04:51:06 +00:00
RegisterInfoEmitter.h Remove trailing whitespace 2005-04-22 00:00:37 +00:00
SubtargetEmitter.cpp 1. Remove ranges from itinerary data. 2005-11-03 22:47:41 +00:00
SubtargetEmitter.h Allow itineraries to be passed through the Target Machine. 2005-11-01 20:06:59 +00:00
TableGen.cpp Remove the obsolete instr selector emitter 2005-10-23 05:47:52 +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