llvm/utils/TableGen
Scott Michel 6be48d49cf Fix to bug 1951: tblgen gratuitously renames variables when no temporary was
generated. This feature would only show up in fairly complex patterns, such
as this one in CellSPU:

  def : Pat<(add (SPUhi tconstpool:$in, 0), (SPUlo tconstpool:$in, 0)),
	    (IOHLlo (ILHUhi tconstpool:$in), tconstpool:$in)>;

which generated the following emit code:

SDNode *Emit_0(const SDOperand &N, unsigned Opc0, unsigned Opc1, MVT::ValueType VT0, MVT::ValueType VT1) DISABLE_INLINE {
  SDOperand N0 = N.getOperand(0);
  SDOperand N00 = N0.getOperand(0);
  SDOperand N01 = N0.getOperand(1);
  SDOperand N1 = N.getOperand(1);
  SDOperand N10 = N1.getOperand(0);
  SDOperand N11 = N1.getOperand(1);
  SDOperand Tmp3(CurDAG->getTargetNode(Opc0, VT0, N00), 0);
  return CurDAG->SelectNodeTo(N.Val, Opc1, VT1, Tmp3, Tmp2); /* Tmp2 s/b N00 */
}

Tested against the test suites without incident.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46487 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-29 02:29:31 +00:00
..
AsmWriterEmitter.cpp remove attributions from utils. 2007-12-29 20:37:13 +00:00
AsmWriterEmitter.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
CallingConvEmitter.cpp Rename CCIfStruct to CCIfByVal and CCStructAssign to CCPassByVal. Remove unused parameters of CCStructAssign and add size and alignment requirement info. 2008-01-15 03:34:58 +00:00
CallingConvEmitter.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
CodeEmitterGen.cpp remove attributions from utils. 2007-12-29 20:37:13 +00:00
CodeEmitterGen.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
CodeGenDAGPatterns.cpp Add files to windows project files. Also include <algorithm> explicitly so that vstudio build works 2008-01-15 21:43:17 +00:00
CodeGenDAGPatterns.h set the 'isstore' flag for instructions whose pattern is an 2008-01-06 05:36:50 +00:00
CodeGenInstruction.cpp Start inferring side effect information more aggressively, and fix many bugs in the 2008-01-10 07:59:24 +00:00
CodeGenInstruction.h Start inferring side effect information more aggressively, and fix many bugs in the 2008-01-10 07:59:24 +00:00
CodeGenIntrinsics.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
CodeGenRegisters.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
CodeGenTarget.cpp Start inferring side effect information more aggressively, and fix many bugs in the 2008-01-10 07:59:24 +00:00
CodeGenTarget.h start inferring 'no side effects'. 2008-01-10 05:39:30 +00:00
DAGISelEmitter.cpp Fix to bug 1951: tblgen gratuitously renames variables when no temporary was 2008-01-29 02:29:31 +00:00
DAGISelEmitter.h rename CodegenDAGPatterns -> CodeGenDAGPatterns 2008-01-06 01:10:31 +00:00
InstrEnumEmitter.cpp split enum emission out from InstrInfoEmitter into it's own tblgen backend. 2008-01-06 00:49:05 +00:00
InstrEnumEmitter.h split enum emission out from InstrInfoEmitter into it's own tblgen backend. 2008-01-06 00:49:05 +00:00
InstrInfoEmitter.cpp Simplify the side effect stuff a bit more and make licm/sinking 2008-01-10 23:08:24 +00:00
InstrInfoEmitter.h start inferring 'no side effects'. 2008-01-10 05:39:30 +00:00
IntrinsicEmitter.cpp Change the builtin matcher to emit a decision tree, which should help out 2008-01-04 04:38:35 +00:00
IntrinsicEmitter.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
Makefile remove attributions from tools/utils makefiles. 2007-12-29 20:07:17 +00:00
Record.cpp remove attributions from utils. 2007-12-29 20:37:13 +00:00
Record.h Add interator interface to DAGInit also 2008-01-22 11:00:07 +00:00
RegisterInfoEmitter.cpp change getQualifiedName to be a global function. 2008-01-05 22:25:12 +00:00
RegisterInfoEmitter.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
SubtargetEmitter.cpp remove attributions from utils. 2007-12-29 20:37:13 +00:00
SubtargetEmitter.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
TableGen.cpp split enum emission out from InstrInfoEmitter into it's own tblgen backend. 2008-01-06 00:49:05 +00:00
TableGenBackend.cpp change getQualifiedName to be a global function. 2008-01-05 22:25:12 +00:00
TableGenBackend.h change getQualifiedName to be a global function. 2008-01-05 22:25:12 +00:00
TGLexer.cpp remove attributions from utils. 2007-12-29 20:37:13 +00:00
TGLexer.h remove attributions from utils. 2007-12-29 20:37:13 +00:00
TGParser.cpp Fix a crash on code like: let x = 1 {x 2008-01-10 07:01:53 +00:00
TGParser.h remove attributions from utils. 2007-12-29 20:37:13 +00:00