From eb0cee91f679de1601313852f82e8e6f3f33cfbf Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Sat, 23 Aug 2008 02:25:05 +0000 Subject: Move the point at which FastISel taps into the SelectionDAGISel process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. llvm-svn: 55219 --- llvm/utils/TableGen/DAGISelEmitter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'llvm/utils') diff --git a/llvm/utils/TableGen/DAGISelEmitter.cpp b/llvm/utils/TableGen/DAGISelEmitter.cpp index cf4d20f9c67..b7778918d0d 100644 --- a/llvm/utils/TableGen/DAGISelEmitter.cpp +++ b/llvm/utils/TableGen/DAGISelEmitter.cpp @@ -1864,7 +1864,7 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) { // Emit boilerplate. OS << "SDNode *Select_INLINEASM(SDValue N) {\n" << " std::vector Ops(N.Val->op_begin(), N.Val->op_end());\n" - << " SelectInlineAsmMemoryOperands(Ops, *CurDAG);\n\n" + << " SelectInlineAsmMemoryOperands(Ops);\n\n" << " // Ensure that the asm operands are themselves selected.\n" << " for (unsigned j = 0, e = Ops.size(); j != e; ++j)\n" -- cgit v1.2.3