LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SystemZSelectionDAGInfo.h
Go to the documentation of this file.
1 //===-- SystemZSelectionDAGInfo.h - SystemZ SelectionDAG Info ---*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines the SystemZ subclass for TargetSelectionDAGInfo.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef SYSTEMZSELECTIONDAGINFO_H
15 #define SYSTEMZSELECTIONDAGINFO_H
16 
18 
19 namespace llvm {
20 
21 class SystemZTargetMachine;
22 
24 public:
27 
28  virtual
30  SDValue Dst, SDValue Src,
31  SDValue Size, unsigned Align,
32  bool IsVolatile, bool AlwaysInline,
33  MachinePointerInfo DstPtrInfo,
34  MachinePointerInfo SrcPtrInfo) const
36 
37  virtual SDValue
39  SDValue Chain, SDValue Dst, SDValue Byte,
40  SDValue Size, unsigned Align, bool IsVolatile,
41  MachinePointerInfo DstPtrInfo) const LLVM_OVERRIDE;
42 
43  virtual std::pair<SDValue, SDValue>
45  SDValue Src1, SDValue Src2, SDValue Size,
46  MachinePointerInfo Op1PtrInfo,
47  MachinePointerInfo Op2PtrInfo) const LLVM_OVERRIDE;
48 
49  virtual std::pair<SDValue, SDValue>
51  SDValue Src, SDValue Char, SDValue Length,
52  MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE;
53 
54  virtual std::pair<SDValue, SDValue>
56  SDValue Dest, SDValue Src,
57  MachinePointerInfo DestPtrInfo,
58  MachinePointerInfo SrcPtrInfo,
59  bool isStpcpy) const LLVM_OVERRIDE;
60 
61  virtual std::pair<SDValue, SDValue>
63  SDValue Src1, SDValue Src2,
64  MachinePointerInfo Op1PtrInfo,
65  MachinePointerInfo Op2PtrInfo) const LLVM_OVERRIDE;
66 
67  virtual std::pair<SDValue, SDValue>
69  SDValue Src, MachinePointerInfo SrcPtrInfo) const
71 
72  virtual std::pair<SDValue, SDValue>
74  SDValue Src, SDValue MaxLength,
75  MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE;
76 };
77 
78 }
79 
80 #endif
virtual std::pair< SDValue, SDValue > EmitTargetCodeForStrnlen(SelectionDAG &DAG, SDLoc DL, SDValue Chain, SDValue Src, SDValue MaxLength, MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE
virtual std::pair< SDValue, SDValue > EmitTargetCodeForStrcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain, SDValue Dest, SDValue Src, MachinePointerInfo DestPtrInfo, MachinePointerInfo SrcPtrInfo, bool isStpcpy) const LLVM_OVERRIDE
virtual SDValue EmitTargetCodeForMemcpy(SelectionDAG &DAG, SDLoc DL, SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, unsigned Align, bool IsVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE
virtual std::pair< SDValue, SDValue > EmitTargetCodeForStrcmp(SelectionDAG &DAG, SDLoc DL, SDValue Chain, SDValue Src1, SDValue Src2, MachinePointerInfo Op1PtrInfo, MachinePointerInfo Op2PtrInfo) const LLVM_OVERRIDE
virtual SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, SDLoc DL, SDValue Chain, SDValue Dst, SDValue Byte, SDValue Size, unsigned Align, bool IsVolatile, MachinePointerInfo DstPtrInfo) const LLVM_OVERRIDE
virtual std::pair< SDValue, SDValue > EmitTargetCodeForMemchr(SelectionDAG &DAG, SDLoc DL, SDValue Chain, SDValue Src, SDValue Char, SDValue Length, MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE
virtual std::pair< SDValue, SDValue > EmitTargetCodeForStrlen(SelectionDAG &DAG, SDLoc DL, SDValue Chain, SDValue Src, MachinePointerInfo SrcPtrInfo) const LLVM_OVERRIDE
SystemZSelectionDAGInfo(const SystemZTargetMachine &TM)
static cl::opt< AlignMode > Align(cl::desc("Load/store alignment support"), cl::Hidden, cl::init(DefaultAlign), cl::values(clEnumValN(DefaultAlign,"arm-default-align","Generate unaligned accesses only on hardware/OS ""combinations that are known to support them"), clEnumValN(StrictAlign,"arm-strict-align","Disallow all unaligned memory accesses"), clEnumValN(NoStrictAlign,"arm-no-strict-align","Allow unaligned memory accesses"), clEnumValEnd))
virtual std::pair< SDValue, SDValue > EmitTargetCodeForMemcmp(SelectionDAG &DAG, SDLoc DL, SDValue Chain, SDValue Src1, SDValue Src2, SDValue Size, MachinePointerInfo Op1PtrInfo, MachinePointerInfo Op2PtrInfo) const LLVM_OVERRIDE
#define LLVM_OVERRIDE
Definition: Compiler.h:155