diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Target/TargetLowering.h | 16 | ||||
-rw-r--r-- | include/llvm/Target/TargetSubtarget.h | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index 9d7a1ec..e8f8c12 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -41,6 +41,7 @@ namespace llvm { class MachineBasicBlock; class MachineInstr; class VectorType; + class TargetSubtarget; //===----------------------------------------------------------------------===// /// TargetLowering - This class defines information used to lower LLVM code to @@ -845,6 +846,9 @@ protected: public: + virtual const TargetSubtarget *getSubtarget() { + assert(0 && "Not Implemented"); + } //===--------------------------------------------------------------------===// // Lowering methods - These methods must be implemented by targets so that // the SelectionDAGLowering code knows how to lower these. @@ -878,6 +882,18 @@ public: bool isVarArg, unsigned CallingConv, bool isTailCall, SDOperand Callee, ArgListTy &Args, SelectionDAG &DAG); + + virtual SDOperand LowerMEMCPY(SDOperand Op, SelectionDAG &DAG); + virtual SDOperand LowerMEMCPYCall(SDOperand Chain, SDOperand Dest, + SDOperand Source, SDOperand Count, + SelectionDAG &DAG); + virtual SDOperand LowerMEMCPYInline(SDOperand Chain, SDOperand Dest, + SDOperand Source, unsigned Size, + unsigned Align, SelectionDAG &DAG) { + assert(0 && "Not Implemented"); + } + + /// LowerOperation - This callback is invoked for operations that are /// unsupported by the target, which are registered to use 'custom' lowering, /// and whose defined values are all legal. diff --git a/include/llvm/Target/TargetSubtarget.h b/include/llvm/Target/TargetSubtarget.h index 3b174c2..1185b09 100644 --- a/include/llvm/Target/TargetSubtarget.h +++ b/include/llvm/Target/TargetSubtarget.h @@ -28,6 +28,9 @@ class TargetSubtarget { protected: // Can only create subclasses... TargetSubtarget(); public: + /// getMaxInlineSizeThreshold - Returns the maximum memset / memcpy size + /// that still makes it profitable to inline the call. + virtual unsigned getMaxInlineSizeThreshold() const {return 0; } virtual ~TargetSubtarget(); }; |