aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMSelectionDAGInfo.h
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-05-11 17:31:57 +0000
committerDan Gohman <gohman@apple.com>2010-05-11 17:31:57 +0000
commitcfbb32346a7eca19d4dc00fd2c1a0248537b3497 (patch)
tree20b7a3cacb1caf30c5a01d5aada920582459763e /lib/Target/ARM/ARMSelectionDAGInfo.h
parentb136be81a362af36d7bf3411670061e722037e59 (diff)
downloadexternal_llvm-cfbb32346a7eca19d4dc00fd2c1a0248537b3497.tar.gz
external_llvm-cfbb32346a7eca19d4dc00fd2c1a0248537b3497.tar.bz2
external_llvm-cfbb32346a7eca19d4dc00fd2c1a0248537b3497.zip
Implement a bunch more TargetSelectionDAGInfo infrastructure.
Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and EmitTargetCodeForMemmove out of TargetLowering and into SelectionDAGInfo to exercise this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103481 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMSelectionDAGInfo.h')
-rw-r--r--lib/Target/ARM/ARMSelectionDAGInfo.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMSelectionDAGInfo.h b/lib/Target/ARM/ARMSelectionDAGInfo.h
index afe9a47201..d7d00c23f2 100644
--- a/lib/Target/ARM/ARMSelectionDAGInfo.h
+++ b/lib/Target/ARM/ARMSelectionDAGInfo.h
@@ -19,9 +19,24 @@
namespace llvm {
class ARMSelectionDAGInfo : public TargetSelectionDAGInfo {
+ /// Subtarget - Keep a pointer to the ARMSubtarget around so that we can
+ /// make the right decision when generating code for different targets.
+ const ARMSubtarget *Subtarget;
+
public:
- ARMSelectionDAGInfo();
+ explicit ARMSelectionDAGInfo(const TargetMachine &TM);
~ARMSelectionDAGInfo();
+
+ virtual
+ SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, DebugLoc dl,
+ SDValue Chain,
+ SDValue Dst, SDValue Src,
+ SDValue Size, unsigned Align,
+ bool isVolatile, bool AlwaysInline,
+ const Value *DstSV,
+ uint64_t DstSVOff,
+ const Value *SrcSV,
+ uint64_t SrcSVOff) const;
};
}