[llvm-commits] CVS: llvm/include/llvm/CodeGen/SelectionDAGISel.h

Chris Lattner lattner at cs.uiuc.edu
Thu Feb 23 18:13:04 PST 2006



Changes in directory llvm/include/llvm/CodeGen:

SelectionDAGISel.h updated: 1.8 -> 1.9
---
Log message:

Add some hooks for selecting memory addresses.


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

 SelectionDAGISel.h |   17 +++++++++++++++++
 1 files changed, 17 insertions(+)


Index: llvm/include/llvm/CodeGen/SelectionDAGISel.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.8 llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.9
--- llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.8	Fri Jan 20 20:32:06 2006
+++ llvm/include/llvm/CodeGen/SelectionDAGISel.h	Thu Feb 23 20:12:52 2006
@@ -49,11 +49,28 @@
   virtual void EmitFunctionEntryCode(Function &Fn, MachineFunction &MF) {}
   virtual void InstructionSelectBasicBlock(SelectionDAG &SD) = 0;
 
+  /// SelectInlineAsmMemoryOperand - Select the specified address as a target
+  /// addressing mode, according to the specified constraint code.  If this does
+  /// not match or is not implemented, return true.  The resultant operands
+  /// (which will appear in the machine instruction) should be added to the
+  /// OutOps vector.
+  virtual bool SelectInlineAsmMemoryOperand(const SDOperand &Op,
+                                            char ConstraintCode,
+                                            std::vector<SDOperand> &OutOps,
+                                            SelectionDAG &DAG) {
+    return true;
+  }
+  
 protected:
   /// Pick a safe ordering and emit instructions for each target node in the
   /// graph.
   void ScheduleAndEmitDAG(SelectionDAG &DAG);
   
+  /// SelectInlineAsmMemoryOperands - Calls to this are automatically generated
+  /// by tblgen.  Others should not call it.
+  void SelectInlineAsmMemoryOperands(std::vector<SDOperand> &Ops,
+                                     SelectionDAG &DAG);
+  
 private:
   SDOperand CopyValueToVirtualRegister(SelectionDAGLowering &SDL,
                                        Value *V, unsigned Reg);






More information about the llvm-commits mailing list