[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

Evan Cheng evan.cheng at apple.com
Fri Feb 10 14:24:44 PST 2006



Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.46 -> 1.47
---
Log message:

Added X86 isel debugging stuff.


---
Diffs of the changes:  (+63 -0)

 X86ISelDAGToDAG.cpp |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 63 insertions(+)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.46 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.47
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.46	Thu Feb  9 16:12:53 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp	Fri Feb 10 16:24:32 2006
@@ -12,6 +12,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#define DEBUG_TYPE "isel"
 #include "X86.h"
 #include "X86InstrBuilder.h"
 #include "X86RegisterInfo.h"
@@ -143,6 +144,8 @@
     inline SDOperand getI32Imm(unsigned Imm) {
       return CurDAG->getTargetConstant(Imm, MVT::i32);
     }
+
+    std::string Indent;
   };
 }
 
@@ -153,7 +156,14 @@
   MachineFunction::iterator FirstMBB = BB;
 
   // Codegen the basic block.
+#ifndef NDEBUG
+  DEBUG(std::cerr << "===== Instruction selection begins:\n");
+  Indent = "";
+#endif
   DAG.setRoot(SelectRoot(DAG.getRoot()));
+#ifndef NDEBUG
+  DEBUG(std::cerr << "===== Instruction selection ends:\n");
+#endif
   CodeGenMap.clear();
   DAG.RemoveDeadNodes();
 
@@ -451,14 +461,37 @@
   unsigned Opc, MOpc;
   unsigned Opcode = Node->getOpcode();
 
+#ifndef NDEBUG
+  std::string IndentSave = Indent;
+  DEBUG(std::cerr << Indent);
+  DEBUG(std::cerr << "Selecting: ");
+  DEBUG(Node->dump(CurDAG));
+  DEBUG(std::cerr << "\n");
+  Indent += "  ";
+#endif
+
   if (Opcode >= ISD::BUILTIN_OP_END && Opcode < X86ISD::FIRST_NUMBER) {
     Result = N;
+#ifndef NDEBUG
+    DEBUG(std::cerr << Indent);
+    DEBUG(std::cerr << "== ");
+    DEBUG(Node->dump(CurDAG));
+    DEBUG(std::cerr << "\n");
+    Indent = IndentSave;
+#endif
     return;   // Already selected.
   }
 
   std::map<SDOperand, SDOperand>::iterator CGMI = CodeGenMap.find(N);
   if (CGMI != CodeGenMap.end()) {
     Result = CGMI->second;
+#ifndef NDEBUG
+    DEBUG(std::cerr << Indent);
+    DEBUG(std::cerr << "== ");
+    DEBUG(Result.Val->dump(CurDAG));
+    DEBUG(std::cerr << "\n");
+    Indent = IndentSave;
+#endif
     return;
   }
   
@@ -539,6 +572,13 @@
         AddHandleReplacement(N1.Val, 1, Result.Val, 1);
       }
 
+#ifndef NDEBUG
+      DEBUG(std::cerr << Indent);
+      DEBUG(std::cerr << "== ");
+      DEBUG(Result.Val->dump(CurDAG));
+      DEBUG(std::cerr << "\n");
+      Indent = IndentSave;
+#endif
       return;
     }
 
@@ -639,6 +679,14 @@
         CodeGenMap[N1.getValue(1)] = Result.getValue(1);
         AddHandleReplacement(N1.Val, 1, Result.Val, 1);
       }
+
+#ifndef NDEBUG
+      DEBUG(std::cerr << Indent);
+      DEBUG(std::cerr << "== ");
+      DEBUG(Result.Val->dump(CurDAG));
+      DEBUG(std::cerr << "\n");
+      Indent = IndentSave;
+#endif
       return;
     }
 
@@ -670,11 +718,26 @@
       else
         Result = CodeGenMap[N] =
           SDOperand(CurDAG->getTargetNode(Opc, VT, Result), 0);
+
+#ifndef NDEBUG
+      DEBUG(std::cerr << Indent);
+      DEBUG(std::cerr << "== ");
+      DEBUG(Result.Val->dump(CurDAG));
+      DEBUG(std::cerr << "\n");
+      Indent = IndentSave;
+#endif
       return;
     }
   }
 
   SelectCode(Result, N);
+#ifndef NDEBUG
+  DEBUG(std::cerr << Indent);
+  DEBUG(std::cerr << "=> ");
+  DEBUG(Result.Val->dump(CurDAG));
+  DEBUG(std::cerr << "\n");
+  Indent = IndentSave;
+#endif
 }
 
 /// createX86ISelDag - This pass converts a legalized DAG into a 






More information about the llvm-commits mailing list